如何選擇具有多個條件組合的行你好,
我正在嘗試使用以下標准在大型數據集中隔離一個特定組:所有對 2 個特定問題回答是的受試者和所有對任何 3 個其他問題回答是的受試者的總和(問題總數 = 9)。 我能夠相當容易地分離出滿足第一個標準的受試者,但不知道如何選擇滿足第二個標準的受試者(假設所有滿足第一個標準的受試者都從感興趣的樣本中移除以避免對它們進行兩次計數)。 任何幫助將不勝感激!
回复:如何選擇具有多個條件組合的行感謝您的信息! 將 Fruit_Scanner==“2” 修改為 Fruit_Scanner==2 就像一個魅力。 使用它我終於能夠使用以下方法獲得我正在尋找的行:
dt =打開( “我的文件.jmp” ) ;
dt <<選擇位置( :測試耐力_T1 == 1個| : teststrong_T1 == 1個|和( : testenjoy_T1 == 1個, : testsad_T1 == 1個, :測試運動_T1 == 1個, : testsleep_T1 == 1個,
:測試執行_T1 == 1個, : testlibido_T1 == 1個, :男性能量_T1 == 1個) >= 3個) ;
再次感謝所有的一切!
回复:如何選擇具有多個條件組合的行我懷疑 Fruit_scanner 和 Vegitable_Scanner 列是數字,而不是字符。在您的“非工作”示例中,您將比較指定為:
Fruit_Scanner==“2”。
如果 Fruit_Scanner 是數字列,則比較將是:
Fruit_Scanner==2
還要查看 Fruit_scanner 的實際值。我以為您指出值是 0 或 1。如果這是真的,那麼您需要尋找:
Fruit_Scanner==1個
我發布的原始回復是需要使用的格式才能得到你想要的。需要的是列的實際名稱和這些列中的實際值。如果你能提供,我想我可以給你 JSL
回复:如何選擇具有多個條件組合的行謝謝吉姆! 我嘗試用 1 替換 4,因為我知道這種組合至少適用於一行,但仍然沒有選擇任何內容。 總的來說,我希望從一組 7 個問題中選擇具有“是”(編碼為 1)的行作為至少 3 個問題的答案(因此總共 >=3)。 任何提示將非常感謝。
再次感謝!
回复:如何選擇具有多個條件組合的行您似乎缺少邏輯是如何工作的。你下面所擁有的總和永遠不會大於一。
布爾比較的結果總是 0 或 1。
因此,如果您要檢查名為 X 的變量的值是否為 22,則比較器或
X==22 為真時返回 1,為假時返回 0。
在下面的示例中,比較器是
Fruit+Screener == "2" & Vegitables_Screener == "2" 只能為 true(1) 或 False(0)。
總和只能是 0 或 1,絕不能是 4
回复:如何選擇具有多個條件組合的行感謝您的快速回复傑夫! 添加“”就可以隔離與該特定 ID 號匹配的行。 由於我實際上不知道是否有任何行符合前面提到的 7 個問題集中至少 3 個問題的“是”(編碼為 1)答案的標準,因此我嘗試為幾個變量輸入求和命令我知道應該返回一些東西。 這是我嘗試過的:
dt =打開( “我的文件.jmp” ) ;
dt <<選擇位置(和( :Fruit_Screener == “2” & :Vegetables_Screener == “2” ) == 4個) ;
不幸的是什麼也沒發生。 我知道至少有一行滿足這兩個變量的“否”(編碼為 2)標準,但沒有發生選擇。 變量名稱中的 _ 可能是一個問題還是求和公式有誤?
再次感謝!
回复:如何選擇具有多個條件組合的行
@Jeff_Perkinson寫道:
請記住顯示字符列正確的左對齊和數字列是左邊正確的。
我的左手和右手在上面搞砸了。 對不起!
-傑夫
回复:如何選擇具有多個條件組合的行您的 ID 列是字符還是數字?
請記住顯示字符列正確的左對齊和數字列是左邊正確的。
如果您的列是字符,則需要將 ID 值放在雙引號中以便進行比較。
例如:
:ID=="1234"
回复:如何選擇具有多個條件組合的行您的 ID 列是字符還是數字?
請記住,字符列是右對齊顯示的,數字列是左對齊的。
如果您的列是字符,則需要將 ID 值放在雙引號中以便進行比較。
例如:
:ID=="1234"
回复:如何選擇具有多個條件組合的行謝謝你們! 我嘗試修改代碼,但仍然無效,所以我查閱了 JMP 腳本指南以嘗試解決問題。 我能夠使用此代碼選擇所有行:
dt = 打開( “我的文件.jmp” ) ;
dt<<選擇所有行;
因為這行得通,所以我嘗試使用比原始代碼更簡單的代碼,我必須看看我是否可以使用 JMP 指令讓事情走上正軌。 我嘗試遵循以下代碼但未成功:
dt =打開( “我的文件.jmp” ) ;
dt <<選擇位置( :ID==10322 ) ;
我運行它時沒有出現任何錯誤消息,但什麼也沒發生。 我檢查了應該選擇但仍未選擇的特定行。 我又試了一次,但還是一無所獲。 進入腳本日誌,我發現了以下內容:
//:*/
dt = Open( "myfile.jmp" );
dt << 選擇哪裡( :ID==10322 );
/*:
腳本[]
//:*/
dt = Open( "Pre_Post_Freshman_Screener_.jmp" );
dt << 選擇哪裡( :ID==10322 );
我嘗試將代碼切換為 ID=10322 以查看它是否會有所作為並得到以下信息:
/*:
//:*/
dt = Open( "Pre_Post_Freshman_Screener_.jmp" );
dt << 選擇哪裡( :ID=10322 );
/*:
使用==進行比較,=為賦值
使用==進行比較,=是賦值{1}
//:*/
dt = Open( "Pre_Post_Freshman_Screener_.jmp" );
dt << 選擇哪裡( :ID=10322 );
/*:
使用==進行比較,=為賦值
使用==進行比較,=是賦值{1}
//:*/
dt = Open( "Pre_Post_Freshman_Screener_.jmp" );
dt << 選擇哪裡( :ID=10322 );
/*:
我不禁認為這一定是一個簡單的錯誤,但我仍然很困惑。 有什麼想法嗎?
再次感謝你的幫助!
回复:如何選擇具有多個條件組合的行馬克在下面的評論是正確的。在我給你的例子中,它有一條評論
/* or >= 3 if that is what you want */
嵌入一行代碼。這種註釋以“/*”開頭,尋找“*/”結束註釋。因為你的代碼只有 /*,");"下一行被認為是正在進行的評論的一部分
回复:如何選擇具有多個條件組合的行您在倒數第二行開始評論,因此看不到右括號。
回复:如何選擇具有多個條件組合的行非常感謝吉姆的快速回复。 使用我的變量和 1 作為是代碼,我嘗試了你給我的:
dt =當前數據表() ;
dt <<選擇行(
測試耐力_T1 == “1” & teststrong_T1 == “1” &和(
testenjoy_T1 == “1” ,
testsad_T1 == “1” ,
測試運動_T1 == “1” ,
testsleep_T1 == “1” ,
測試執行_T1 == “1” ,
testlibido_T1 == “1” ,
男性能量_T1 == “1”
) > = 3個/*
);
並收到以下錯誤:
輸入意外結束。 可能缺少“,”或“)”。 試圖解析函數“select rows where”的參數。 第 12 行第 4 列:);►
我檢查了第 12 行,它不符合任何納入標準。 我顯然遺漏了一些東西,但無法弄清楚是什麼。
再次感謝!
回复:如何選擇具有多個條件組合的行下面是一個“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 */
);