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 April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
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.