データテーブルを開くには、Open()関数を使用します。
Open( "$SAMPLE_DATA/Big Class.jmp" ); // データテーブルを開くのみ
dt = Open( "$SAMPLE_DATA/Big Class.jmp" ); // 開いて参照を保存する
データテーブルのパスとしては、引用符で囲んだ文字リテラル(絶対パスまたは相対パス)か、パス名を戻す引用符のない式が使えます。相対パスは、.jslファイルの場所を基準として相対的に解釈されます(保存されたスクリプトの場合)。保存されていないスクリプトの場合、パスは、プライマリパーティション(Windowsの場合)または<ユーザ名>/Documentsフォルダ(Macintosh)との相対で解釈されます。
Open( "../My Data/Repairs.jmp" ); // WindowsおよびMacintoshにおける相対パス
Open( "::My Data:Repairs.jmp" ); // Macintoshにおける相対パス
Open( "C:/My Data/Repairs.jmp" ); // 絶対パス
JMPには、ディレクトリやファイルにより簡単にアクセスする方法(パス変数)が用意されています。この方法では、ディレクトリやファイルの完全なパスを入力する代わりに、Open()式にパス変数を含めます。たとえば、JMPのサンプルスクリプトで広く使われるパス変数の$SAMPLE_DATAは、Samples/Dataフォルダにあるファイルを開きます。パス変数の詳細については、「データタイプ」章の「パス変数」(125ページ)を参照してください。
myPath = "C:/My Data/Store25/Maintenance/Expenses/";
Open( myPath || "Repairs.jmp" );
開いたデータテーブルに依存するスクリプトでは、テーブルが開いているかどうかをIs Empty()またはIs Scriptable()を使ってテストします。次の例では、スクリプトが「Big Class.jmp」で二変量の分析を行った後、データテーブルを閉じます。スクリプトで後述されている一元配置分析に進む前に、If Scriptable()によって、開いたデータテーブルがテストされます。1(真)が戻された場合、テーブルは開いており、スクリプトは続行します。
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj = dt << Bivariate( Y( :Name("身長(インチ)") ), X( :年齢 ), Fit Line );
Close( dt );
If( Not( Is Scriptable( dt ) ),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" ),
);
obj = dt << Oneway( Y( :Name("身長(インチ)") ), X( :年齢 ), Means( 1 ), Mean Diamonds( 1 ) );
データテーブルに対して別のスクリプトを実行する前に、データテーブルが開いているかどうかをチェックし、開いている場合はいったんデータテーブルを閉じて任意の変更を破棄するとよい場合もあります。「Big Class.jmp」が開いている場合には閉じる、というスクリプトは、次のように記述できます。
Try( Close( Data Table( "Big Class" ) ) );
開いているデータテーブルがないときに、データテーブルを開くようユーザに促すには、If()式を使用します。ユーザがテーブルを開かないときはスクリプトが終了するようにします。次のスクリプトは、その一例です。
dt = Current Data Table();
If( Is Empty( dt ),
Try( dt = Open(), Throw( "開かれているデータテーブルはありません。" ) )
);
ユーザは、データテーブルを開くよう促されます。ユーザがデータテーブルを開かずに[キャンセル]をクリックした場合、ログにエラーが表示されます。
dt = Open( "$SAMPLE_DATA/Big Class.jmp", Select Columns( "年齢", "身長(インチ)",
"体重(ポンド)" ) );
dt = Open( "$SAMPLE_DATA/Big Class.jmp", Ignore Columns( "名前", "性別" ) );