複数の by 列を含む集計関数全て、
潜在的に 1 列以上 (ユーザーからの入力によって決定される) の観測数を取得するスクリプトを作成しようとしています。 スクリプトは 1 つの列では機能しますが、2 つ以上の列では機能しません。 1 つ以上の列を処理できるように集計関数の by ステップのコードを調整するにはどうすればよいですか?
以下はスクリプトのサンプルです。
varName = VarList <<GET selected="">0,
summarize(dt, cat = by(Column(dt,varName)),c=count);
//do other things
);
</GET>
ありがとう!
サラ
Re: 複数の by 列を含む集計関数varname 変数について混乱して申し訳ありません。 正しく理解しています。これは、GUI からのユーザーの入力に依存する列名のリストです (varList、つまり列リスト ボックスです)。 そしてあなたは私の問題を解決してくれました。 簡単な修正で済むと嬉しいですね。
では、今後の知識として、JSL の関数でデータ テーブルの列名を参照したいときは、その周りに eval() コマンドを使用すると問題なく動作するはずです。 特にグラフをコーディングする場合には、この点で常に問題が発生するようです。
どうもありがとう!
サラ
Re: 複数の by 列を含む集計関数あなたの投稿には、何が問題なのかを確実に理解するには十分な情報がありません。 VarList とは何か、および <
dt=open("$SAMPLE_DATA\Big Class.jmp");
varname={:age, :sex};
その場合は、次のように Summarize() 関数の varname の前後に use Eval() を置く必要があります。
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
varname = {:age, :sex};
//varName = VarList <<GET selected=""> 0,
Summarize( dt, cat = by( Eval( varname ) ), c = count );
//do other things
);</GET>