2014-01-12 98 views
0

我有一個數據集,它看起來方式如下:條件刪除在SAS

1. individual time woman 
2. 1   2008 1 
3. 1   2009 1 
4. 1   2010 1 
5. 2   2008 0 
6. 2   2009 0 
7. 2   2010 1 
8 2   2010 0 
9. 3   2008 0 
10. 3   2009 0 
11. 3   2010 0 

的問題是,一些意見在2010年均爲男性和女性出現兩次。例如觀察7和8的情況。我想知道,如果有可能刪除以過去爲條件的觀察結果,即對於個體2,則應該刪除觀察7,因爲6是0.

我希望它是有道理的, 謝謝。

回答

1

下應該過濾掉有woman比某一個人先觀察不同值的所有觀測。假設數據集按個人排序。

data x; 
    set x; 
    by individual; 
    retain _woman; 
    if first.individual then _woman = woman; 
    else if _woman ^= woman then delete; 
run; 
+0

這裏的關鍵是'delete'語句。您可以編寫任何您需要的邏輯,並使用'delete'刪除任何不需要的記錄。 – DomPazz

+0

謝謝。我能否做類似的陳述,例如刪除2010年沒有觀察結果的個人? –

+0

刪除單個觀察=「刪除」。基於沒有東西,你不能完全刪除整套觀察結果,但它可能以一種稍微不同的方式。有關如何使用數據步驟執行操作的示例,請參閱我對您的其他問題的回答。 – Joe

0

所以你想保持每個individualtime的第一次觀察?

你可以做這樣的事情(數據集應該由individualtime排序):

data want; 
set have; 
by individual time; 
if first.time = 1 then output; 
run;