在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;