こんにちは、
データフィルタコマンドのwhere句にベクトルを渡す方法を学びます。私はこれを理解しようとしています。なぜなら、where節の等価以下のステートメントを動作させることができないようだからです。ただしWhere(:columnname == {1,2})を渡しても機能します。それはそれが単純であるべきであるように思われます、しかしそれはバグがあると証明することになって、そして私は適切な構文を理解することができません。以下に示すコード例。
GE_Table = Current Data Table();
GE_Table << DataFilter(Add Filter(
columns(:SUSPECT_COUNT,:SYMPTOM_COUNT),
Where( :SYMPTOM_COUNT == 1),
Where( :SUSPECT_COUNT <=2 ), //this doesn't work but Where( :SUSPECT_COUNT == {1,2}) does...?????
show window(0)
)
);何か案は?
返信ありがとうございます。列タイプをcontinuousに切り替えるのが私にとって最も簡単な解決策でしたが、例は他のコード例を見るのに役立ちます。再度、感謝します!
私はあなたがモデリングタイプの問題に直面していると思います。
suspect_count列は公称ですね。その名目上の値のリストを与えることはうまくいきます。(中括弧で囲まれているのでリストです。)列が連続した数字であれば、スクリプトは機能します。
このちょっとしたスクリプトを見てください。
年齢は数字の公称値で、私のフィルタでは12と14を選択しました(中括弧、列区切り)。しかし、その場合、重みは数値連続であるため、不等式 "<= 100"が機能します。 構文を整理する簡単な方法は、手動でフィルタを作成してから、行フィルタの赤い三角メニューからスクリプトをクリップボードまたはスクリプトウィンドウに保存することです。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Data Filter(
Add Filter(
columns( :weight, :age ),
//Where( :weight >= col minimum(:weight) & :weight <= 100 ),
Where( :weight <= 100 ),
Where( :age == {12, 14} ),
Display( :age, Blocks Display )
)
);
コメント行( "//")についての注意:これは、値が列からのもの(または評価されるものすべて)である可能性があることを示すためのものです。
それでは、もう少し長い質問、「値をリストに渡してからフィルターでそのリストを使用するにはどうすればよいですか?」 (ヘビー言い換えを許してください)
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Summarize( age_levels = By( :age) );
show(age_levels);
parse(age_levels[2]);//second thing in the list of age_levels, returns a number
age_list={};//empty list
insert into(age_list,parse(age_levels[2]));//second thing in the list of age_levels, "parse" returns a number not a quoted string
insert into(age_list,parse(age_levels[4]));//add 4th thing
show(age_list);//look at the log to see the values
dt << Data Filter(
Add Filter(
columns( :weight, :age ),
Where( :weight <= 100 ),
Where( :age == age_list ),//note the list gets evaluated here
Display( :age, Blocks Display )
)
);
このスクリプトは、JMPスクリプトウィンドウではもう少し読みやすいかもしれません。
問題は、フィルタリングしている列が連続列ではなく、順序列または名義列であることです。 したがって、フィルタのさまざまな方法論。