IF ステートメントでエラーが発生しました
以下に示すように IF ステートメントを使用しています。 スクリプトを実行すると、「開く」コマンドのみが実装され、スクリプトは IF ループにも入りません。
スクリプト 2 に示すように、IF ステートメントとともに「FOR EACH ROW」を使用しようとしましたが、次のエラーがスローされます。
助言がありますか??
dt = Open ("C:\Users\NXF90574\Documents\NXP\Machine Learning\Script trial\fc data\fc_mcs11_evm_cluster_means.jmp");
IF( :"Ppk"n <= 2 ,
(
dt << Select where( :"Ppk"n <=2 );
dt_ppk = dt << subset (Output table("fc_mcs11_evm_cluster_means_low_ppk.jmp"), Selected Rows( 1 ), selected columns( 0 ));
dt_ppk << Save As("C:\Users\NXF90574\Documents\NXP\Machine Learning\Script trial\fc data\fc_mcs11_evm_cluster_means_low_ppk.jmp");
),
"PPk Good"
);dt = Open ("C:\Users\NXF90574\Documents\NXP\Machine Learning\Script trial\fc data\fc_mcs11_evm_cluster_means.jmp");
For each row(dt,
IF( :"Ppk"n <= 2 ,
(
dt << Select where( :"Ppk"n <=2 );
dt_ppk = dt << subset (Output table("fc_mcs11_evm_cluster_means_low_ppk.jmp"), Selected Rows( 1 ), selected columns( 0 ));
dt_ppk << Save As("C:\Users\NXF90574\Documents\NXP\Machine Learning\Script trial\fc data\fc_mcs11_evm_cluster_means_low_ppk.jmp");
),
"PPk Good"
)
); 自動化とスクリプト作成基本的なデータ分析とモデリングRe: IF文のエラーあなたは何をしようとしているのですか?
Re: IF文のエラー1] ファイルを開く
2]列名 Ppk <=2 かどうかを確認します
[a] はいの場合は、Ppk <=2 の行を選択します - それらをサブセット化し、別のデータ テーブルとして保存します
b] いいえの場合は、「PPk 良好」と表示します。
Re: IF文のエラー<< Get Rows Where を使用して Ppk <= 2 の行を取得し、if ステートメントを使用してそのリスト内の項目が 0 より大きいかどうかを確認します。
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
Show(Row()); // Row() is inmitialize as 0 which isn't valid row number in JMP
// -> :name; // won't return anything useful
rows_of_interest = dt << Get Rows Where(:height <= 60);
If(N Items(rows_of_interest) > 0,
// perform actions
Show("PPK NOK")
,
Print("PPK OK");
);Re: IF文のエラー使用@jthi答え。 しかし、何が起こったのかを説明するには...
元の 2 つのスニペットでは、最初のスニペットはテーブルに現在の行がないため失敗します。
:"Ppk"n <= 2
欠損値と比較しています。欠損値との比較は true または false のどちらでもないため、if の true 節と false 節は実行されません (JMP の欠損値について知らない場合は驚くべき結果になります)。
dt=open("$sample_data/big class.jmp");
dt:age==14
. <<< no row selected, result is missing
row()=5; dt:age==13
0 <<< LILLIE is 12
2 番目の例では、ForEachRow は一度に 1 行ずつ各行を現在の行にするため、最初の問題は回避されます。 に基づく行 2 で保存できませんメッセージを見ると、最初のサブセット テーブルがファイル名に依存していて、行 2 から作成された 2 番目のサブセットが、既に使用されている同じファイルに保存しようとしていると確信しています。 (編集:)閉じる(dt_ppk)これは解決するかもしれませんが、同じファイルが何度も再作成されることになります。
Re: IF文のエラーIf() 関数の最初の引数、
:"Ppk"n <= 2
が評価され、列参照またはテーブル変数と数値が比較されます。 それがあなたがやりたいことですか?
両方とも Ppk という名前の列とテーブル変数がありますか?
Re: IF文のエラーどうもありがとう。 これはうまくいきました。
Re: IF文のエラーこんにちは、クレイジさん
ご説明ありがとうございます。 それはもう明らかです。