My current code is.
1. The "svcdate" variable in the "have" dataset starts with 2010 dates but for some reason in the "want" dataset output, I only get dates that are based on 1960s (resembles more like the patient's birthdates)
2. my enrolled_days_tot are showing up as "." in the output dataset 😞
Anybody know what is going on here? Thank you so much!
data want;
do until(last.enrolid);
set have;
where (dx1 in (&dx1_list.) or dx2 in (&dx1_list.) or dx3 in (&dx1_list.) or dx4 in (&dx1_list.))
and age >=&age_cutoff.;
by enrolid enroll_start_dt enroll_end_dt;
if first.enrolid then index_dt=svcdate and enrolled_days_tot=intck('days', enroll_end_dt, enroll_start_dt);
format index_dt date11.;
output;
end;
keep enrolid enroll_start_dt enroll_end_dt index_dt enrolled_days_tot;
run;
This is erroneous:
if first.enrolid then index_dt=svcdate and enrolled_days_tot=intck('days', enroll_end_dt, enroll_start_dt);
do you mean something like:
if first.enrolid and index_dt=svcdate then enrolled_days_tot=intck('days', enroll_end_dt, enroll_start_dt);
or
if first.enrolid then do;
index_dt=svcdate;
enrolled_days_tot=intck('days', enroll_end_dt, enroll_start_dt);
end;
I am only guessing.
This is erroneous:
if first.enrolid then index_dt=svcdate and enrolled_days_tot=intck('days', enroll_end_dt, enroll_start_dt);
do you mean something like:
if first.enrolid and index_dt=svcdate then enrolled_days_tot=intck('days', enroll_end_dt, enroll_start_dt);
or
if first.enrolid then do;
index_dt=svcdate;
enrolled_days_tot=intck('days', enroll_end_dt, enroll_start_dt);
end;
I am only guessing.
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9.
Early bird rate extended! Save $200 when you sign up by March 31.
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.