DATA Step, Macro, Functions and more

Converting dates fromYYWW to sas date

Reply
Occasional Learner AAP
Occasional Learner
Posts: 1

Converting dates fromYYWW to sas date

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.

 

Kind regards

Alexander

Super User
Super User
Posts: 7,994

Re: Converting dates fromYYWW to sas date

You can use the weeku format, although you will likely need to add the "W" in to get it to work.

http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a002604468.htm

 

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;
SAS Super FREQ
Posts: 709

Re: Converting dates fromYYWW to sas date

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.

 

Bruno

Ask a Question
Discussion stats
  • 2 replies
  • 195 views
  • 1 like
  • 3 in conversation