如何根據多個條件選擇行?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />你好,
我正在編寫一個腳本來對資料表進行子集化。 按照腳本指南的編碼範例,我可以根據標準進行選擇:
對於每一行(選定(Rowstate())=(名稱==“KATIE”));
我如何概括這一點以選擇 KATIE 和 LOUISE?
這不起作用:
對於每一行(Selected(Rowstate())=(name=="KATIE","LOUISE"));
那麼這個的語法是什麼呢?
問候
波爾
回覆:如何根據多個條件選擇行?謝謝,
我過去常常將每個條件子集到一個單獨的表中,然後將它們組合起來。
新年快樂 !回覆:如何根據多個條件選擇行?這是您想要完成的任務嗎?找到在名為「name_list」的清單中找到的所有符合項,然後將它們輸出到子集資料表中?
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
name_list = {"Clay", "Alice", "AMY"};
For( i = 1, i <= N Items( name_list ), i++,
i_name = Uppercase( name_list[i] );
dt << select where( :name == i_name, current selection( "extend" ) );
);
dtSub = dt << subset( selected rows( 1 ), selected columns( 0 ) );回覆:如何根據多個條件選擇行?嗨女士,
謝謝你的劇本。
我想知道是否有辦法動態處理姓名列表,並且仍然能夠對
dt =打開( “$SAMPLE_DATA/大類.jmp” ) ;
name_list={"clay","Alice","AMY", ...};
for(i=1,i<=nitems(name_list),i++,
i_name=name_list[i];
dt<<選擇其中(名稱=i_name)
);
dt<<子集;
回覆:如何根據多個條件選擇行?這種語法可能更具可讀性。您可以使用垂直線表示 OR,使用 & 符號表示 AND:
dt =打開( “$sample_data\Big Class.jmp” ) ;
dt <<選擇地點((包含( :姓名, “一個領帶” ) |包含( :姓名, “奧伯” ))
&包含( :性別, “F” )) ;
回覆:如何根據多個條件選擇行?差不多了。 And() 必須包含兩個參數;為了使 And() 為真,它的兩個參數都必須為真。
這應該有效:
對於每一行(已選擇(行狀態() ) =和(或者(包含( :姓名, “一個領帶” ) ,包含( :姓名, “奧伯” )) ,包含( :性別, “F” ))) ;
回覆:如何根據多個條件選擇行?嗨,這些答案非常有幫助。 現在,如果我想在另一列中新增值條件,假設我想選擇 name="KATIE" 和 "ROBERT"(或更好,包含「ATIE」)和 sex="F"。 然後我必須將 Or- 條件與 and 條件結合。
dt =打開( “$SAMPLE_DATA/大類.jmp” ) ;
對於每一行(已選擇(行狀態() ) =或者(包含( :姓名, “一個領帶” ) ,包含( :姓名, “奧伯” ))並且(包含(:性別,“F” ))) ;
我已經做過類似的事情,但沒有成功。
問候
波爾
(PS 顯然我經常使用 Base SAS。 現在我嘗試以這種方式在表上實現選擇。 謝謝您的幫忙。)
回覆:如何根據多個條件選擇行?如果有許多字串需要匹配,則很容易使用 list 而不是建構長 OR() 子句。 但是,Contain() 不能不在(字串)清單中尋找子字串。 然後需要對列表進行循環。 這是一個例子:
dt =打開( “$SAMPLE_DATA/大類.jmp” ) ;
名單= { “一個領帶” , “伊勢” , “克萊” , “萬維網” } ;
n = N 項(名單) ;
對於每一行(
為了(我= 1 ,我<= n ,我++,
如果( ( s_標誌=包含( :姓名[] ,名單[我] )) > 0 ,
休息()
)
) ;
已選擇(行狀態() ) = s_標誌;
) ;
回覆:如何根據多個條件選擇行?同樣的原理:
dt =打開( “$SAMPLE_DATA/大類.jmp” ) ;
對於每一行(已選擇(行狀態() ) =或者(包含( :姓名, “一個領帶” ) ,包含( :姓名, “伊勢” )) ) ;
// 或者也可以
dt <<選擇地點(或者(包含( :姓名, “一個領帶” ) ,包含( :姓名, “伊勢” )) ) ;
回覆:如何根據多個條件選擇行?但是,如果我想進一步使用“Contains”來匹配部分字串中的字串怎麼辦? 喜歡“ATIE”和“ISE”? 問候波爾
回覆:如何根據多個條件選擇行?使用 Or():
dt =打開( “$SAMPLE_DATA/大類.jmp” ) ;
對於每一行(已選擇(行狀態() ) =或者(姓名== “凱蒂” ,姓名== “路易絲” ) ) ;
// 或者也可以
dt <<選擇地點(或者(姓名== “凱蒂” ,姓名== “路易絲” ) ) ;