JMPのデータテーブルに、Get SAS Data Step for Formula Columnsというメッセージを送ると、列の計算式に対応したSASプログラムが作成されます。次の例は、まず、計算式を含む「rate」列を作成し、そのSASプログラムを生成します。
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << New Column( "rate", Formula( :"身長(インチ)"n / :"体重(ポンド)"n ));
dt << Get SAS Data Step for Formula Columns;
このスクリプトは、次のようなコードをログに出力します。なお、列名における日本語などの文字は、標準的なSASの変数名には使えないため、アンダーバーに置き換えられます。この例では、サンプルデータの列名は、日本語名だけではなく、英語名も設定されているので、英語名が使われます。
/*%PRODUCER: JMP - DataTable Formulas */
/*%TARGET: Ratio */
/*%INPUT: __ */
/*%INPUT: __2 */
/*%OUTPUT: Ratio */
/* Code to score rate */
rate =height/weight
drop ;
引数に列名を指定すると、その列の計算式だけが対象となりますが、次のように列名を省略すると、すべての計算式のコードが生成されます。
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Get SAS Data Step for Formula Columns;
SAS Model Managerでスコアリングすることができるコードを列計算式から生成することもできます。それには、データテーブルにGet MM SAS Data Step for Formula Columnsを送ります。
dt = Open( "$SAMPLE_DATA/Tiretread.jmp" );
dt << Get MM SAS Data Step for Formula Columns;
このスクリプトの結果もログに表示されます。
Get SAS Data Step for Formula Columnsの場合と同様、列名の指定はオプションです。