假设我有表:
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
,如果N
不是null
,我想保持只有第一排。结果是:
id date N
1 04FEB2017 1
1 04FEB2017 .
1 04FEB2017 .
1 05FEB2017 3
2 04FEB2017 4
我尝试排名,但这并没有让我想到任何想法
答案 0 :(得分: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。这是根据评论编辑的。