データテーブルの参照にデータテーブルメッセージを送るときと同様に、データ列オブジェクトへの参照に列メッセージを送ることができます。Column関数は、データ列の参照を戻します。この関数の引数は、引用符で囲んだ名前(または、引用符で囲んだ名前を導き出すもの)または番号のどちらかです。
Column( "年齢" ); // 「年齢」列への参照
col = Column( 2 ); // 2番目の列への参照を割り当てる
注: 特殊文字を含む名前は、:Name( "利益 ($M)" )という構文を用いて指定します。
『スクリプトガイド』では、データ列の参照をcolで表します。データ列オブジェクトに送ることのできるメッセージは、[ヘルプ]>[スクリプトの索引]を選択した後、[オブジェクト]>[Data Table]>[Column Scripting]で確認できます。または、Show Properties()コマンドを次のように使用します。
Show Properties( col );
注: 列の個々の値を参照する場合、列の参照に添え字を付けなければなりません。添え字を使わないと、列オブジェクト全体を参照することになります。
データ列の参照をグローバル変数に格納した後で、列に変更を加えたいときは、データ列の参照にメッセージを送ります。
列にメッセージを送る方法は、データテーブルにメッセージを送る方法と同じです。オブジェクト、<<演算子、その後に括弧で囲んだ引数を持つメッセージを記述するか、またはSend()関数を使ってオブジェクトとその後にメッセージを記述します。引数を必要としないメッセージもあるので、末尾の括弧はオプションです。
col << message( arg, arg2, ... );
Send( col, message(arg, arg2, ... ) );
メッセージは、データテーブルや他のタイプのオブジェクトの場合と同様、次のようにして1つにまとめたり、リストにしたりできます。
col << message << message2 << ...
col << {message, message2, ...};
ヒント: 列を削除するにはメッセージをデータテーブルの参照に送る必要があります。オブジェクトを削除できるのはそのオブジェクトのコンテナだけで、オブジェクトは自身を削除できないからです。
列のセルに含まれている値にアクセスするには、列の参照で添え字を使います。添え字を使わないと、列オブジェクト全体を参照することになります。
x = col[irow] // 特定の行
x = col[] // 現在の行
col[irow] = 2; // 割り当て式の左辺として
dt << Select Where( col[] < 14 ); // WHERE節で使用
列に[値ラベル]プロパティが設定されていて、実際のデータ値ではなく、その値ラベルにアクセスしたいときがあります。そのような場合は、formattedオプションを使用してください。次の例を見てみましょう。
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
dt << Run Script( "年齢に値ラベルをセット" );
x = Column( dt, "年齢", formatted )[1];
Show( x );
y = Column( dt, "年齢" )[1];
Show( y );
このログには、xとして表示形式適用後の値(Twelve)、およびyとして実際のデータ値(12)が表示されます。