data file;
set oldfile;
n=1;
run;
proc sort data=file;by group type;
run;
proc means data=file noprint;
var n;
by group type;
output out=a(drop=_freq_ _type_) n=n;
run;
proc means data=a noprint;
var n;
by group;
output out=b(drop=_type_ _freq_) a=n;
run;
data final;
merge a b;by group;
if a=2 then ouptut;
keep group type;
run;
雖然長了一點
但是邏輯不難理解 你可以參考看看
※ 引述《a15321 (a15321)》之銘言:
: 請教各位前輩,我有一組資料
: group type 其他變數...
: 100 A
: 100 B
: 101 A
: 101 A
: 101 B
: 101 B
: 102 A
: 103 B
: 104 A
: 104 A
: group有上萬組,type只有兩種,
: 我想把資料整理成只剩下,「同一個group同時有A與B兩種type」的group
: 也就是上面的data能整理成留下
: group type
: 100 A
: 100 B
: 101 A
: 101 A
: 101 B
: 101 B
: 我目前想到的作法是
: 先以group排序,然後用 if First.group and Last.group then delete;
: 就能刪除只有一組資料的group。
: 但剩下 同一個group裡數組資料都是A type或都是B type的部份
: 就不知道怎麼抓出來刪除了...
: 可否請板上前輩們給點提示 感謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.225.35.51