2015-06-16 94 views
0

我有重複問題。 其實我需要的僅僅是看到重複的,但我的表中有許多變量類似下面:重複問題

a  b c d  e 
32 ayi dam som kem 
32 ayi dam som tws 
32 ayi dam tsm tws 
12 mm ds de ko 
12 mm tmm to ko 

我想保持如果「A」「B」「C」和「d」變量是相同的。所以我只需要前兩列。我試圖做到這一點

proc sort data=al nodupkey dupout=dups; 
by a b c d; 
run; 

任何想法,如果這個工程?

+0

您需要的前兩行,而不是前兩列。你有沒有嘗試過以上? – Joe

+0

是的,我試過但不工作 – Latife

+0

那麼你可以把這個問題,你有什麼錯誤和/或你的意思是不工作? – Joe

回答

0

另一種選擇可能是PROC SQL,無需預先排序:

proc sql; 
create table want as 
select * from have 
group by a, b, c, d 
having count(*)>1; /*This is to tell SAS only to keep those dups*/ 
quit; 
2

在SAS 9.3+中,您可以使用新的nouniquekey選項輕鬆完成此操作。

proc sort data=have nouniquekey out=want; 
    by a b c d; 
run; 

這將刪除任何唯一的行並留下重複的行。

如果您有早期版本的SAS,可以在常規排序後做相當簡單的事情。

所以,在你的榜樣排序上面,但沒有nodupkey後:

data want; 
    set have; 
    by a b c d; 
    if not (first.d and last.d); 
run; 

,消除了基於a b c d第一個和最後一個記錄的記錄。