看板 Statistics 關於我們 聯絡資訊
看不是很懂你的需求,同id但sex不一致的人抓出來 為什麼output是 aa f aa f ====>這筆也要抓嗎@_@ aa m 好吧,那就按照你output的需求 proc sort data=aa out=b1 nodupkey;by id sex;run; data b2;set b1;by id sex;if first.id+last.id=2 then delete;run; proc sort data=aa;by id sex;run; data b3;merge aa(in=x) b2(in=y);by id sex;if x+y=2;run; ※ 引述《minna05 (take it easy)》之銘言: : 首先非常感謝imaltar提供的語法 : 但我在執行大樣本的時候發生了以下的問題: : 除了原先我想除錯的id會顯示以外 : 當該id的frequency count 為11.22時 : 即使它的percent為100%仍會顯示於output中 : 請問這有改善的方法嗎? : 另外,當該筆id的sex為遺漏値時,也會被挑出 : 有辦法讓他顯示成 : aa m : aa : aa m : 這樣嗎? 我再人工判斷是否留下該id : 謝謝大家幫忙^^ : ※ 引述《imaltar (..)》之銘言: : ※ 引述《minna05 (take it easy)》之銘言: : : [軟體程式類別]:sas : : [程式問題]:資料處理 : : [軟體熟悉度]:低(1~3個月) : : [問題敘述]:假設資料為 : : data a; : : input id $ sex $; : : cards; : : aa f : : aa f : : aa m : : bb f : : cc m : : cc m : : ; : : 我想要把同id但sex卻不一致的人抓出來 : : 讓output呈現 aa : : 或是 aa f : : aa f : : aa m : : 請問語法該怎麼寫呢? : : 謝謝^^ : proc sort data=a;by id; : proc freq data=a noprint;table sex/out=b(where=(percent ne 100));by id;run; : b就是id和sex不同的data : 你也可以將b根據id串回a得到aa : proc sort data=b;by id; : data aa;merge a(in=a) b(in=b keep=id);by id;if a=b;run; -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.167.139.149 ※ 編輯: socery 來自: 218.167.139.149 (06/09 23:06)
minna05:感謝提供語法唷^^ 剛剛我嘗試了另一個方法,再貼給大家參考 06/09 23:28