11-18-2016 06:11 AM
Hi SAS programmers.
I need to do a follow up study on a data set where the dates are only available as year and week stored in the same variable as YYWW (ie 1034 corresponds to 2010 week 34). I would like to covert this variable to a sas date, prefferably to the corresponding monday, however I have had no luck doing so.
I am not very experienced with sas, so the answer might be quite trivial, but I was unable to find the answer using my usual ressources (the little sas book and google).
Hopefully you can help.
11-18-2016 06:56 AM
You can use the weeku format, although you will likely need to add the "W" in to get it to work.
Alternatively, you could use intnx() function, i.e. substr(1,2)=year, then from 01JAN that year intnx("week",substr(3,2)). To move the date number of weeks forward.
data want; yywk="1013"; date1=input(catx("W",substr(yywk,1,2),substr(yywk,3,2)),weeku5.); format date1 date9.; run;
11-18-2016 12:34 PM
The WEEKx informat requires to have a "W" between the year and the week.
So you could use the following code:
data have ; week = "1034"; weekDate = input( cats(substr(week, 1, 2), "w", substr(week, 3, 2)), weekv8.); format weekDate weekDate.; run;
There are various informats, but since you need it to be a Monday use the WEEKV. infromat.
Since you have 2 digist for the year, pay attention to the YEARCUTOFF system option, as this will determine whether it will be 2010 or 1910.