Hi All-
Wondering how to code the following scenario in SAS.
Ideally all the rows in the table should pass the below criteria for the 3 dates.
COLL_DT < REC_DT < RESULT_DT.
I now want to create a list of ppl on whom the above criteria is not met.
BOB
proc print ;
where not (COLL_DT < REC_DT < RESULT_DT);
var id COLL_DT REC_DT RESULT_DT;
run;
proc print ;
where not (COLL_DT < REC_DT < RESULT_DT);
var id COLL_DT REC_DT RESULT_DT;
run;
Tom -
Thanks on your promp reply. I want the output into a dataset as I need to merge later. I think the same WHERE statment in PROC SQL can get me into a dataset. But wondering if there is an approch in Datastep that does that for me.
Bob
It is really no different.
data want;
set have;
where not (COLL_DT < REC_DT < RESULT_DT);
run;
If you need to limit it to one record per person/item/whatever then you might want something like:
data want;
set have;
where not (COLL_DT < REC_DT < RESULT_DT);
by id;
if first.id;
keep id;
run;
Same difference:
data want ;
set have ( where=( not (COLL_DT < REC_DT < RESULT_DT)));
run;
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.