JSL で if 文が機能しないこんにちは、みんな。
私の if ステートメントの何が問題なのか確認していただけますか? 条件が true の場合 (私の場合は、spec ファイル名がコードに記述されているとおりの場合) にいくつかの jsl コマンドを実行したいのですが、機能しません。
その他すべては正常に動作していますが、if ステートメントだけが動作していません。
私のJMPバージョンは18です
dt = Current Data Table();
dt << Select Columns( :PARAMETER );
dt << Text To Columns( delimiter( "_" ) );
dt << delete columns( :PARAMETER 1 );
If( :SPECFILE == "MS-SMLD",
:PARAMETER 2 << set name( "Column_name1" );
:PARAMETER 3 << set name( "Column_name2" );
:PARAMETER 4 << set name( "Column_name3" );
:PARAMETER 5 << set name( "Column_name4" );
:PARAMETER 6 << set name( "Column_name5" ) ;
,
If( :SPECFILE == "SMLA", Formula(
dt << delete columns( :PARAMETER 5 );
:PARAMETER 2 << set name( "Column_name1" );
:PARAMETER 3 << set name( "Column_name2" );
:PARAMETER 4 << set name( "Column_name3" );
)
)
);
ありがとう、
レシェフ
ウィンドウズRe: if 文が jsl で動作しない: SPECFILE を SPECFILE に変更すれば十分かもしれません ( : SPECFILE は (通常) 列を参照します)。
Re: if 文が jsl で動作しないこんにちは。
ありがとうございます。ただし、「SPECFILE」は確かに私の jmp テーブル内の列です。
とにかく、試してみましたが、うまくいきませんでした。
おそらく、IF ステートメント内の jsl コマンドを分離するものでしょうか?
あるいは、1 つの IF ステートメントで複数の jsl コマンドを実行することは不可能でしょうか?
ありがとう、
レシェフ
Re: if 文が jsl で動作しない次に、行を定義する必要があります(たとえば、Row() = 1;)。または、For Each Rowを使用してテーブル内の行をループします。JMPの「デフォルト」行は0で、これは有効な行ではありません。
Re: if 文が jsl で動作しない行 1 の列「SPECFILE」の値を調べて、それに基づいて決定を下す場合は、以下の JSL が目的のものです。
Names Default To Here( 1 );
dt = Current Data Table();
dt << Select Columns( :PARAMETER );
dt << Text To Columns( delimiter( "_" ) );
dt << delete columns( :PARAMETER 1 );
If(
:SPECFILE[1] == "MS-SMLD",
:PARAMETER 2 << set name( "Column_name1" );
:PARAMETER 3 << set name( "Column_name2" );
:PARAMETER 4 << set name( "Column_name3" );
:PARAMETER 5 << set name( "Column_name4" );
:PARAMETER 6 << set name( "Column_name5" );,
:SPECFILE[1] == "SMLA",
dt << delete columns( :PARAMETER 5 );
:PARAMETER 2 << set name( "Column_name1" );
:PARAMETER 3 << set name( "Column_name2" );
:PARAMETER 4 << set name( "Column_name3" );
);