ヒント: ログウィンドウを開いたままにして、実行したスクリプトの出力を確認しましょう。[表示]>[ログ]を選択し、ログウィンドウを表示します。詳細については、ログの使用を参照してください。
データテーブル内の値を処理する場合、次のような手順が一般的です。
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 TableとOpenは、まだ存在しないオブジェクトを作成するためのコマンドです。オブジェクトが作成できたら、そのオブジェクトに変更を求めるメッセージを送ります。オブジェクトは自身を削除できないので、オブジェクトを閉じるには、オブジェクトのコンテナを閉じる必要があります。
次の例は、テーブルを作成し、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の[スクリプトの索引]を参照してください。[スクリプトの索引]では、サンプルスクリプトの実行や変更もできます。[ヘルプ]>[スクリプトの索引]を選択し、[オブジェクト]リストの中でプロパティを探します。