複数の条件を組み合わせて行を選択する方法やあ、
次の基準を使用して、大規模なデータセット内の特定のグループを分離しようとしています: 2 つの特定の質問に「はい」と答えたすべての被験者と、他の 3 つの質問に「はい」と答えたすべての被験者の合計 (質問の総数 = 9)。 最初の基準を満たす被験者をかなり簡単に分離することができましたが、2 番目の基準を満たす被験者を選択する方法がわかりません (1 番目の基準を満たすすべての被験者が対象のサンプルから削除され、2 回カウントされるのを避けるため)。 どんな助けでも大歓迎です!
Re: 複数の条件を組み合わせて行を選択する方法情報のおかげで! Fruit_Scanner=="2" を Fruit_Scanner==2 に変更すると、うまくいきました。 それを使用して、最終的に次を使用して探していた行を取得できました。
dt =開ける( 「myfile.jmp」 ) ;
dt <<場所を選択( : testendurance_T1 == 1 | | : teststrong_T1 == 1 | |和( : testenjoy_T1 == 1 、 : testsad_T1 == 1 、 : testsports_T1 == 1 、 : testsleep_T1 == 1 、
: testperform_T1 == 1 、 : testlibido_T1 == 1 、 : maleenergy_T1 == 1 ) >= 3 ) ;
すべてにもう一度感謝します!
Re: 複数の条件を組み合わせて行を選択する方法Fruit_scanner 列と Vegitable_Scanner 列は文字ではなく数値であると思われます。「非稼働」の例では、比較を次のように指定しました。
Fruit_Scanner=="2".
Fruit_Scanner が数値列の場合、比較は次のようになります。
Fruit_Scanner==2
Fruit_scanner の実際の値も見てください。値が 0 または 1 であることを示したと思います。その場合は、以下を探す必要があります。
Fruit_Scanner==1
私が公開した元の返信は、あなたが望むものを得るために使用する必要がある形式です.必要なのは、列の実際の名前とそれらの列の実際の値です。それを提供していただければ、JSLを提供できると思います
Re: 複数の条件を組み合わせて行を選択する方法ありがとうジム! この組み合わせが少なくとも1行に当てはまることがわかっているため、その4を1に置き換えてみましたが、まだ何も選択されていません。 全体として、合計7つの質問のグループから少なくとも3つの質問に対する回答として「はい」(1としてコード化)を持つ行を選択しようとしています(したがって、合計3つ以上)。 どんなヒントでも大歓迎です。
再度、感謝します!
Re: 複数の条件を組み合わせて行を選択する方法ロジックがどのように機能しているかを見逃しているようです。下にあるものは、合計が 1 を超えることはありません。
ブール比較の結果は常に 0 または 1 になります。
したがって、X という変数の値が 22 であるかどうかを確認する場合、比較子または
X==22 は、真の場合は 1 を返し、偽の場合は 0 を返します。
以下の例では、のコンパレータ
Fruit+Screener == "2" & Vegitables_Screener == "2" は true(1) または False(0) のみです。
この合計は 0 または 1 になるだけで、4 になることはありません
Re: 複数の条件を組み合わせて行を選択する方法ジェフさん、素早い回答ありがとうございます! 「」を追加すると、その特定のID番号に一致する行を分離するというトリックが行われました。 前述の 7 つの質問のセットから少なくとも 3 つの質問に対する「はい」(1 としてコード化) の回答の基準に一致する行があるかどうかは実際にはわからないため、いくつかの変数に対して合計コマンドを入力しようとしました。私は何かを返す必要があることを知っていました。 これが私が試したものです:
dt =開ける( 「myfile.jmp」 ) ;
dt <<場所を選択(和( :フルーツスクリーナー== 「2」 & :野菜_スクリーナー== 「2」 ) == 4 ) ;
残念ながら何も起こりませんでした。 これら 2 つの変数について、少なくとも 1 つの行が「いいえ」(2 としてコード化) の基準を満たしていることはわかっていますが、選択は行われませんでした。 変数名の _ が問題になる可能性がありますか、それとも合計式のエラーですか?
再度、感謝します!
Re: 複数の条件を組み合わせて行を選択する方法
@ジェフ・パーキンソン書きました:
文字列が表示されることに注意してください右左詰め、数値列は左右。
上で左と右がめちゃくちゃになりました。 ごめん!
-ジェフ
Re: 複数の条件を組み合わせて行を選択する方法ID 列は文字ですか、それとも数値ですか?
文字列が表示されることに注意してください右左詰め、数値列は左右。
列が文字の場合、比較のために ID 値を二重引用符で囲む必要があります。
例えば:
:ID=="1234"
Re: 複数の条件を組み合わせて行を選択する方法ID 列は文字ですか、それとも数値ですか?
文字列は右揃えで表示され、数値列は左に表示されることに注意してください。
列が文字の場合、比較のために ID 値を二重引用符で囲む必要があります。
例えば:
:ID=="1234"
Re: 複数の条件を組み合わせて行を選択する方法皆さん、ありがとうございました! コードを変更しようとしましたが、それでもうまくいかなかったので、JMP Scripting Guide を調べて調べてみました。 このコードを使用してすべての行を選択できました。
dt = 開く( 「myfile.jmp」 ) ;
dt<<すべての行を選択;
これが機能したので、元のコードよりも単純なコードにしようとしましたが、JMP 命令を使用して物事を軌道に乗せることができるかどうかを確認する必要がありました。 次のコードに失敗しました:
dt =開ける( 「myfile.jmp」 ) ;
dt <<場所を選択( :ID==10322 ) ;
エラーメッセージは表示されずに実行しましたが、何も起こりませんでした。 選択されているはずの特定の行を確認しましたが、まだ選択されていません。 もう一度試しましたが、まだ何もありません。 スクリプトログに行くと、次のことがわかりました。
//:*/
dt = Open( "myfile.jmp" );
dt << Select Where( :ID==10322 );
/*:
スクリプト可能[]
//:*/
dt = Open( "Pre_Post_Freshman_Screener_.jmp" );
dt << Select Where( :ID==10322 );
コードを ID=10322 に切り替えて、違いがあるかどうかを確認したところ、次の結果が得られました。
/*:
//:*/
dt = Open( "Pre_Post_Freshman_Screener_.jmp" );
dt << Select Where( :ID=10322 );
/*:
比較には == を使用します。 = は代入です
比較には == を使用します。= は代入です{1}
//:*/
dt = Open( "Pre_Post_Freshman_Screener_.jmp" );
dt << Select Where( :ID=10322 );
/*:
比較には == を使用します。 = は代入です
比較には == を使用します。= は代入です{1}
//:*/
dt = Open( "Pre_Post_Freshman_Screener_.jmp" );
dt << Select Where( :ID=10322 );
/*:
これは単純なエラーに違いないと思わざるを得ませんが、それでも困惑しています。 何かご意見は?
ご協力いただきありがとうございます。
Re: 複数の条件を組み合わせて行を選択する方法以下のマークのコメントは正しいです。私があなたに与えた例では、コメントがありました
/* or >= 3 if that is what you want */
コード行に埋め込まれます。このタイプのコメントは "/*" で始まり、"*/" を探してコメントを終了します。コードには /* しかないので、");"次の行は進行中のコメントの一部と見なされます
Re: 複数の条件を組み合わせて行を選択する方法最後の行の次の行でコメントを開始したため、閉じ括弧は表示されません。
Re: 複数の条件を組み合わせて行を選択する方法Jim様 早速のお返事ありがとうございます。 私の変数と 1 を yes コードとして使用して、あなたがくれたものを試しました:
dt =現在のデータ テーブル() ;
dt <<行を選択する(
testendurance_T1 == 「1」 & teststrong_T1 == 「1」 &和(
testenjoy_T1 == 「1」 、
testsad_T1 == 「1」 、
testsports_T1 == 「1」 、
testsleep_T1 == 「1」 、
testperform_T1 == 「1」 、
testlibido_T1 == 「1」 、
maleenergy_T1 == 「1」
) > = 3 /*
);
次のエラーが発生しました:
入力が予期せず終了しました。 「,」または「)」が欠落している可能性があります。 関数「select rows where」の引数を解析しようとしています。 行 12 列 4: );►
行 12 を確認しましたが、どの選択基準も満たしていません。 明らかに何かが欠けていますが、何がわかりません。
再度、感謝します!
Re: 複数の条件を組み合わせて行を選択する方法以下は、実行する必要のあるロジックを示す "Select Rows Where" スクリプトです。これをインタラクティブに行いたい場合は、ステートメントのロジック コンポーネントを取得して組み込みます。
行==>行の選択==>場所を選択
dt = Current Data Table();
dt << select rows where(
q1 == "Yes" & q2 == "Yes" & Sum(
q3 == "Yes",
q4 == "Yes",
q5 == "Yes",
q6 == "Yes",
q6 == "Yes",
q7 == "yes",
q8 == "Yes",
q9 == "Yes"
) == 3 /* or >= 3 if that is what you want */
);