在SAS中的范围内满足特定条件时删除行
Deleting rows when meeting a specific condition when in a range in SAS
我需要以下数据集的帮助:
ID Code SAStime
001 1 0
001 1 600
001 1 1200
... ... ...
001 1 84600
001 2 85200
001 2 85800
我希望能够告诉程序,如果 Code=1 在 SAStime 0 和 85800 之间,则删除这些数据行。所以我还剩下一些东西,像这样:
ID Code SAStime
001 2 85200
001 2 85800
我试过使用 drop、keep 和 where 函数,但由于某些原因它不起作用。
我觉得你问的是SAS语法,你可以从中学习。
关于这个问题,答案如下:
data have;
input ID$ Code SAStime;
cards;
001 1 0
001 1 600
001 1 1200
001 1 84600
001 2 85200
001 2 85800
;
run;
data want;
set have;
if Code = 1 and 0 <= SAStime <= 85800 then delete;
run;
我需要以下数据集的帮助:
ID Code SAStime
001 1 0
001 1 600
001 1 1200
... ... ...
001 1 84600
001 2 85200
001 2 85800
我希望能够告诉程序,如果 Code=1 在 SAStime 0 和 85800 之间,则删除这些数据行。所以我还剩下一些东西,像这样:
ID Code SAStime
001 2 85200
001 2 85800
我试过使用 drop、keep 和 where 函数,但由于某些原因它不起作用。
我觉得你问的是SAS语法,你可以从中学习。
关于这个问题,答案如下:
data have;
input ID$ Code SAStime;
cards;
001 1 0
001 1 600
001 1 1200
001 1 84600
001 2 85200
001 2 85800
;
run;
data want;
set have;
if Code = 1 and 0 <= SAStime <= 85800 then delete;
run;