Hello,
I'm have a dataset with 3 columns of dates. What I would like to do is create one single column which prioritizes putting Date 1 in it, but if Date 1 is missing it places Date 2 into the new column and finally if both Date 1 and Date 2 are missing it places Date 3 into the new column.
Date 1 | Date 2 | Date 3 |
6/15/2017 | 6/14/2017 | |
6/12/2017 | ||
6/15/2017 | ||
6/14/2017 | 6/15/2017 | 6/20/2017 |
Output should look like this
Date |
6/15/2017 |
6/12/2017 |
6/15/2017 |
6/14/2017 |
Thank you!
proc sql;
select case
when date1 ne . then date1
when date1=. and date2 ne . then date 2
when date1=. and date2=. then date3
end as date from table;
quit;
date=coalesce (of date1--date3);
You can use IF THEN condition.
IF NOT MISSING(DATE1) THEN DATE=DATE1;
ELSE IF MISSING(DATE1) AND NOT MISSING(DATE2) THEN DATE=DATE2;
ELSE DATE=DATE3;
proc sql;
select case
when date1 ne . then date1
when date1=. and date2 ne . then date 2
when date1=. and date2=. then date3
end as date from table;
quit;
Thank you!
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
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.