2017-02-12 31 views
0

假設我有表:以從該組的第一次觀察一個條件

id date  N 

    1 04FEB2017 1 
    1 04FEB2017 . 
    1 04FEB2017 2 
    1 04FEB2017 . 
    1 05FEB2017 3 
    2 04FEB2017 4 
    2 04FEB2017 5 

它是由ID的排序,然後按日期。

對於所有相同id的,所有相同date的,如果Nnull我想只保留第一行。所以結果是:

id date  N 

1 04FEB2017 1 
1 04FEB2017 . 
1 04FEB2017 . 
1 05FEB2017 3 
2 04FEB2017 4 

我試圖排名,但didnt推我的任何想法

回答

0

因爲數據集進行排序,可以使用BY語句和FIRST.語法找到每組中的第一條記錄。

data have; 
informat id 4. date date9. n 4.; 
format date date9.; 
input id date n; 
datalines; 
1 04FEB2017 1 
1 04FEB2017 . 
1 04FEB2017 2 
1 04FEB2017 . 
1 05FEB2017 3 
2 04FEB2017 4 
2 04FEB2017 5 
; 
run; 

data want; 
set have; 
by id date; 

if first.date or missing(n) ; 
run; 

第二數據僅步驟保持第一日期或如果n是丟失。這是根據評論編輯的。

+0

實際上,你的代碼不會保留空行 –

+0

我誤解了你的想法。編輯即將到來 – DomPazz

相關問題