公開日: 04/01/2021

はじめに

ヒント: ログウィンドウを開いたままにして、実行したスクリプトの出力を確認しましょう。[表示]>[ログ]を選択し、ログウィンドウを表示します。詳細については、ログの使用を参照してください。

データテーブル内の値を処理する場合、次のような手順が一般的です。

1. 使用したい値が入っているデータテーブルを、現在のデータテーブルとして設定する。すでにデータテーブルの参照がある場合は、その参照を使用することができます。

2. 使用したい値が入っている行または列を指定し、使用したい値が含まれている列名を指定します。

次の例では、「Big Class.jmp」データテーブルを開き(それにより、このデータテーブルが「現在のデータテーブル」になります)、「体重」列の行2を指定します。ログを見ると、123という値が戻されていることがわかります。これは、行2の「Louise」の体重です。

dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt:weight[2];

123

データテーブルがすでに開いている場合は、次の例のいずれかを使用します。

dt = Data Table( "My Table" ); // すでに開いている「My Table」という名前のテーブル
dt = Current Data Table(); // アクティブなウィンドウにあるテーブル
dt = Data Table( 3 ); // 3番目に開かれたテーブル

参照のあるデータテーブルが開いたら、<<演算子かSend関数を使ってデータテーブルにメッセージを送ります。次の例では、両方の使い方を示します。

dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Save();
Send( dt, Save() );

メッセージについて、次の点に留意してください。

メッセージは、どのデータテーブルオブジェクトにも送ることができます(データテーブル、列、行など)。

データテーブルオブジェクトに送られるメッセージは、常に次のようなパターンを持ちます。

参照 << メッセージ( 引数 );

通常は、参照を作成し、その参照にメッセージを送るのが最も簡単です。しかし、メッセージを1つしか送らない場合は、参照を使わずに直接送ることもできます。次の例は、現在のデータテーブルを保存します。

Current Data Table() << Save();

一連のメッセージを1つのステートメントに連ねることもできます。コマンドは左から右へと評価され、各コマンドが、影響するオブジェクトの参照を戻します。次の例は、「My Table」という名前の新しいデータテーブルを作成し、そこに2つの列を追加した後、データテーブルを保存します。

dt = New Table( "My Table" );
dt << New Column( "Column 1" ) << New Column( "Column 2" ) << Save( "" );

この例では、各メッセージがデータテーブル(dt)の参照を戻します。

メッセージの引数が足りないと、JMPは必要な情報の入力を求めるウィンドウを表示します。JMPは、スクリプトが不完全な場合によくウィンドウを表示します。JMPのこの動作は、ユーザによる入力が必要なスクリプトを作成するときに利用できます。

一部のメッセージは対になっており、一方は各属性を設定(set)または割り当て、もう一方は各属性の現在の設定を取得(get)または問い合わせます。

オブジェクトに送るコマンド(メッセージ)と単独で使うコマンドがある理由

New TableOpenは、まだ存在しないオブジェクトを作成するためのコマンドです。オブジェクトが作成できたら、そのオブジェクトに変更を求めるメッセージを送ります。オブジェクトは自身を削除できないので、オブジェクトを閉じるには、オブジェクトのコンテナを閉じる必要があります。

次の例は、テーブルを作成し、dt変数にデータテーブル参照を割り当てます。そのデータテーブルの参照にNew Columnメッセージを送ります。これらの列のいずれかを削除する場合は、列そのものではなく、データテーブルの参照にDelete Columnsメッセージを送ります。

dt = New Table( "Airline Data" );
dt << New Column( "Date" );
dt << New Column( "Airline" );
dt << Delete Columns( "Date" );

データテーブルオブジェクトに送ることができるメッセージ

データテーブルオブジェクトに送ることができるメッセージは、次のような手順で、[スクリプトの索引]で確認できます。

1. [ヘルプ]>[スクリプトの索引]を選択します。

2. リストの中から[すべてのカテゴリ]を選択します。

3. リストの中から[Data Table]を選択します。

Show Properties()コマンドを使用することもできます。このコマンドは、メッセージのリストを印刷したい場合やコピーしたい場合に便利です。Show Properties()コマンドは、データテーブルに送ることのできるメッセージを「ログ」ウィンドウに一覧表示します。Show Properties()は、データテーブルや列など、スクリプト可能なオブジェクトを引数としてとるコマンドです。データテーブルのプロパティを表示するには:

dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Show Properties( dt );

結果のメッセージは、階層型のリストに表示されます。

[サブテーブル]は、JMPのメニューに表示されるコマンドセットを指します。たとえば、「Tables」というサブテーブルは、JMPの[テーブル]メニューを表します。このサブテーブルに、インデントされた形で表示されるメッセージは、[テーブル]メニューのコマンドに該当します。メッセージの多くに、短い説明がついています。

[アクション]のラベルがあるメッセージはすべて、何らかのアクションが実行されます。スクリプトでしか使用できないものには、[スクリプトの場合のみ]のラベルがつきます。ブール値の引数をとるメッセージには、[ブール値]のラベルがつきます。

[分析]メニューと[グラフ]メニューのプラットフォームがプロパティのリストに表示されているのは、プラットフォーム名をメッセージとしてデータテーブルに送ることができるからです。プラットフォーム名をメッセージとして送ると、そのデータテーブルに対して通常の起動ウィンドウが開きます。プラットフォームに関連するスクリプトの書き方については、プラットフォームのスクリプトを参照してください。

dt << Distribution( Y( :Name("身長(インチ)") ) );

注: Show Propertiesは、データテーブルだけでなく、プラットフォームとディスプレイボックスにも使用できます。

これらのプロパティに関する詳細は、JMPの[スクリプトの索引]を参照してください。[スクリプトの索引]では、サンプルスクリプトの実行や変更もできます。[ヘルプ]>[スクリプトの索引]を選択し、[オブジェクト]リストの中でプロパティを探します。

より詳細な情報が必要な場合や、質問があるときは、JMPユーザーコミュニティで答えを見つけましょう (community.jmp.com).