酥糖公子 发表于 2010-4-17 18:50 
我有这样的数据data A:
num t x
1 78 4
1 79 5
1 80 0
1 81 7
2 79 .
2 80 2
2 81 4
3 78 0
3 79 1
3 80 2
3 81 3
4 79 0
4 81 8
现在想要得到这样的结果对于如果对num=1而言(num=2、3、4时也这样),一旦第一个x为0,则所有num=1时的观测值都删去 请教高手帮忙 我忙了半天就是出不来。。。多谢!
Here is a simple solution assuming the data is sorted by num.
data raw;
input num t x;
cards;
1 78 4
1 79 5
1 80 0
1 81 7
2 79 .
2 80 2
2 81 4
3 78 0
3 79 1
3 80 2
3 81 3
4 79 0
4 81 8
;
run;
data wanted;
retain flag 0;
set raw;
by num;
if first.num and x ne 0 then flag=1;
if flag=1 then output;
if last.num then flag=0;
drop flag;
run;