data VS;
input ptid @5 vsdtc ddmmyy10. @17 result;
format vsdtc ddmmyy10.;
cards;
101 24/10/2018 110
101 25/10/2018 120
101 26/10/2018 115
101 27/10/2018 125
101 28/10/2018 135
102 23/10/2018 130
102 25/10/2018 120
102 26/10/2018 110
102 29/10/2018 115
102 30/10/2018 125
103 24/10/2018 120
103 26/10/2018 140
103 27/10/2018 110
103 28/10/2018 115
103 28/10/2018 145
;
run;
data DM;
input ptid @8 rfstdtc ddmmyy10.;
format rfstdtc ddmmyy10.;
cards;
101 26/10/2018
102 26/10/2018
103 27/10/2018
;
run;
proc sort data=VS;
by ptid;
run;
proc sort data=DM;
by ptid;
run;
data VS1;
merge VS DM;
by ptid;
run;
proc print;
run;
DATA VS2 VS3;
set VS1;
if vsdtc < rfstdtc then output VS2;
if vsdtc > rfstdtc then output VS3;
run;
DATA NEWL;
SET VS2;
IF LAST.result THEN vsblfl = 'Y';
RUN;
PROC PRINT;
RUN
Please avoid coding in upper case, its shouting code. Missing by line:
data newl; set vs2; by result; if last.result then vsblfl='Y'; run;
What is the error?
Please avoid coding in upper case, its shouting code. Missing by line:
data newl; set vs2; by result; if last.result then vsblfl='Y'; 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.