このバージョンのヘルプはこれ以降更新されません。最新のヘルプは https://www.jmp.com/support/help/ja/15.2   からご覧いただけます。


スコープ演算子は、名前が曖昧な場合(たとえば、変数と列名の両方を指している場合)の解決の助けとなります。
次の例では、接頭部の二重コロン(::)により、zがグローバル変数であることを示しています。接頭部の一重コロン(:)は、xyが列名であることを示します。
::z = :x + :y;
ヒント: Names Default to Here(1)関数も名前の解決に影響を与えます。詳細は、「プログラミング手法」章の「Names Default To Hereとグローバル変数」(246ページ)の節を参照してください。
As Column(dt, name)
nameをデータテーブル列として評価させる。オプションのデータテーブル参照引数dtは、現在のデータテーブルを設定します。例については、第 “適用範囲が指定された列名”を参照。
nameをグローバル変数として評価させる。
1.
接頭部のコロン(:)は、名前がグローバル変数ではなく、テーブル列またはテーブル変数を参照することを意味します。接頭部のコロンは、現在のデータテーブルの内容を参照します。
:年齢;
2.
二項演算子のコロン(:)は、この考え方を拡張して、データテーブル参照を使って、どのデータテーブルの列なのかを指定します。これは、スクリプト内で複数のデータテーブルが参照されている場合に特に重要です。
次の例では、dt変数が「Big Class.jmp」へのデータテーブル参照を設定します。二項演算子のコロンは、データテーブル参照と「年齢」列を分離します。
dt = Data Table( "Big Class.jmp" );
dt:年齢 // コロンは二項演算子。
As Column()の場合も同じ結果となります:
dt = Data Table( "Big Class.jmp" );
As Column( dt, 年齢 );
したがって、「Big Class.jmp」が開いている場合に限り、次の式も等価です。
:年齢;
As Column( dt, 年齢 );
dt:年齢;
Column関数は列を特定する目的で使用することもできます。「Big Class.jmp」では、以下の式はすべてテーブル内の2番目の列である「年齢」を参照します。
Column( "年齢" );
Column( 2 );
Column( dt, 2 );
Column( dt, "年齢" );
列名と同名の変数があるスクリプトを実行すると、「無効な行番号です。」というエラーが発生します。この問題を防ぐには、列名と変数名が重複しないように注意するか、次のように名前の適用範囲(スコープ)を指定します。
::年齢 = [];
年齢 = :年齢 << Get As Matrix;
::年齢 = :年齢 << Get As Matrix;
dt1 = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt2 = Open( "$SAMPLE_DATA/Students.jmp" );
::年齢 = dt1:年齢 << Get As Matrix;
::Name(" 身長( インチ)") = dt2:身長 << Get As Matrix;
名前に添え字がある(たとえば、:Name("体重(ポンド)")[1]の添え字[1]は、「体重(ポンド)」列の最初の値を選択する)
ratio = :Name(" 身長(インチ)") / :Name(" 体重(ポンド)");
Row()関数を使って行番号を指定します。次の例は、行を3に設定します。その行の身長を体重で割り、その結果をグローバル変数ratioに割り当てます。
Row() = 3;
ratio = :Name(" 身長(インチ)") / :Name(" 体重(ポンド)");
ratio = :Name("身長(インチ)")[3] / :Name("体重(ポンド)")[4];
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << New Column( "比率" );
For Each Row( :比率 = :Name("身長(インチ)") / :Name("体重(ポンド)") );