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!
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and save with the early bird rate—just $795!
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.