cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
  • JMP 19 is here! See the new features at jmp.com/new.
  • Register to attend Discovery Summit 2025 Online: Early Users Edition, Sept. 24-25.
Choose Language Hide Translation Bar
JSLでリスト内にある複数の列名を分析の起動ウィンドウで指定する方法

概要

JSLを使用して、リスト内に保持している複数の列名をJMPの各種分析プラットフォームの起動ウィンドウで指定したい、という場合もあるかと思います。

例えば、JMPのサンプルデータ"Pollen.jmp"の全ての列に対し、[分析] > [一変量の分布]で分析を行い、レポートを出力するJSLを書きたいとします。

結論から言いますと、この例のような場合、Eval List()関数を使用する必要があります。

 

手順

以下は実行するとエラーが発生し、レポートが出力されないスクリプトの例です。

//このスクリプトは説明のために用意した失敗の例です。

Names Default To Here( 1 );

dt = Open( "$SAMPLE_DATA/Pollen.jmp" );			
//サンプルデータ"Pollen.jmp"を開く。

columnlist = dt << Get Column Names( String );	
//開いた"Pollen.jmp"の列名を文字列で取得し、リストに入れる。

dt << Distribution( Column( columnlist ) );		
//リストに入れた列名の列に対して「一変量の分布」で分析したいが...

このスクリプトを実行すると、サンプルデータ"Pollen.jmp"は開きますが、レポートは出力されません。JMPのメニューで[表示] > [ログ]を選択し、ログを確認すると以下の出力が確認できます。

Distribution , Bad Argument( {columnlist} ), Distribution( /*###*/Column( columnlist ) )へのアクセスまたはその評価中のメッセージ:見つかりません。

このような場合に、Eval List()関数を使用する必要があります。Eval List()関数を使うことでリスト内の項目を評価させることが可能です。今回の"Pollen.jmp"の全ての列に対し、[分析] > [一変量の分布]で分析を行い、レポートを出力する例の場合、以下のようにEval List()関数を使用してスクリプトを書きます。

//このスクリプトは正しい例です。

Names Default To Here( 1 );

dt = Open( "$SAMPLE_DATA/Pollen.jmp" );						
//サンプルデータ"Pollen.jmp"を開く。		

columnlist = dt << Get Column Names( String );				
//開いた"Pollen.jmp"の列名を文字列で取得し、リストに入れる。

dt << Distribution( Column( Eval List( columnlist ) ) );	
//リストに入れた列名の列に対して「一変量の分布」で分析を行う。

 

Details
Products JMP

Recommended Articles