JSLでは、As Name()を使用して列名を参照し、Names Default To Here( 1 )を設定した場合、JMPは変数参照を戻します。そして、その参照は標準の参照ルールを使って処理されます。
次の例では、Here:スコープに「身長(インチ)」変数はありません。そのため、JMPはエラーを戻します。
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Big Class.jmp" );
As Name( "身長(インチ)" )[3]; //「身長(インチ)」を変数の参照として検索
As Name( "身長(インチ)" )[/*###*/3];
ログにある/*###*/の文字は、スクリプトの実行でエラーが発生した箇所を示します。
この問題を回避するには、次のいずれかの方法を使用します。
• As Name()ではなくAs Column()を使用します。
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Big Class.jmp" );
As Column( "身長(インチ)" )[3]; //「身長(インチ)」をデータ列として検索
• As Name()を使って明示的に「身長(インチ)」の適用範囲を指定します。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt:( As Name( "身長(インチ)" ) )[3]; //スコープを指定し、身長(インチ)をデータ列として検索
これらのスクリプトは、「Big Class.jmp」の3行目の「身長(インチ)」の値である55を戻します。