式の中で複雑な名前を持つ列を参照する方法初心者の JSL スクリプタはこちら...
列内のデータが欠落している行を削除するスクリプトを作成したいと考えています。現時点では、列の名前を変更すると次のように機能します。
clean_dt << selectWhere(IsMissing ( :THK ) ) << deleteRows ;
問題は、このスクリプトを動的にして、指定した列の任意の名前を処理し、たとえば列番号で参照できるようにしたいことです。 このように列名が複雑だとします。
ステップ::測定::データ::THK:生(平均)
毎回列の名前を変更する必要はありません... うまくいく「はず」だと思うことを何度か試しましたが、次のようなことはうまくいきませんでした。
clean_dt << selectWhere(IsMissing(コラム(8) )) << deleteRows ;
また
clean_dt << selectWhere(IsMissing(:ステップ::データ::THK:生(平均) )) << deleteRows ; (列名は特殊文字を使用しており複雑すぎます)
このメッセージでエラーが発生するたびに
'Is Missing' 、Is Missing/*###*/(Column( 8 )) へのアクセスまたは評価では、引数は数値{1}である必要があります。
Re: 式内で複雑な名前の列を参照する方法ありがとう、これはうまくいきました! ここから、i を列インデックスとして使用して式をループに渡すのは簡単です。Re: 式内で複雑な名前の列を参照する方法「Select Where」メッセージを使用する場合、JMP は各行を調べて行が基準を満たしているかどうかを確認するため、基準は現在の行に基づく必要があります。
Column 関数は実際には列全体への参照を返すため、Select Where メッセージで Column 関数を使用する場合は、現在の行に添え字を含める必要があります。 これは、添え字 [Row()] または単に [] を付けることで実行できます。 下記参照。
dt << Select where( Is Missing( Column( 8 )[] ) );
特殊文字を含む列名を使用する場合は、名前パーサーを列名の文字列で使用できます。 この文字列を変数にする必要がある場合は、代わりに Column 関数を使用する必要があります。
dt << Select Where( Is Missing( :Name( "Step::Data::THK:Raw (Mean)" ) ) );
また
str = "Step::Data::THK:Raw (Mean)";
dt << Select Where( Is Missing( Column( str )[] ) );