I have variables in my data set for both the week number and year number. I am looking for a way to convert them to a date column (MM/DD/YYYY or similar format). I know how to convert from a date to week/year, but not vice versa. Does anyone have any ideas?
You might be able to use date math to get to the first day of the week
FirstOfWeek = mdy(1,1,yearnum) + (7 * ( weeknum - 1));
or
intnx('week',mdy(1,1,yearnum),weeknum-1);
WeekW. informat
Here's one way, but probably not the neatest:
(EDIT: I've assumed the day to be 1, the first of the week, but you could change that by changing the 01 and the end of week_year)
data have;
input year week ;
cards;
2001 23
2001 24
2003 45
2014 5
2005 36
2006 45
2007 3
;
run;
data want;
set have;
week_year=compress(year||"W"||put(week, z2.)||"01");
date_want=input(week_year, weekw9.);
format date_want date9.;
run;
You might be able to use date math to get to the first day of the week
FirstOfWeek = mdy(1,1,yearnum) + (7 * ( weeknum - 1));
or
intnx('week',mdy(1,1,yearnum),weeknum-1);
That was really helpful. Thanks to both of 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 lock in 2025 pricing—just $495!
Check out this tutorial series to learn how to build your own steps in SAS Studio.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.