Help using Base SAS procedures

How to get the first day of a week

Occasional Contributor
Posts: 15

How to get the first day of a week

Hi all,

Based on the data set below, I would like to have another col (Commence_Day) getting the date of first day of the week col(Week).

For example:

Week                  Commence_Day

Week31                    29/07/13

Week32                    05/08/13

Week33.                   12/08/13


Any suggestion?

Respected Advisor
Posts: 4,736

Re: How to get the first day of a week

The SAS calendar function intnx() will allow you to shift a week to wherever you want to. BUT: You need a SAS date value as starting point for this.

intnx('week',<sas date value>,0,'b') would give you the Sunday the week starts, intnx('week.2',<sas date value',0,'b') would give you the Monday.

The issue with your data is: You don't have a SAS date value. Your variable "Week" doesn't even say in which year this week is  - which is kind of important to come up with the correct date. So to get from your data containing a string for a week number to a date some coding will be required. The data you've provided is not sufficient to do this. We need at least the year as well.

Just as an idea:

- Create a new variable with has the year and week in it, eg. WeekYear with values like '2013Week1'

- Create a data set to be used to create an informat (look up in docu: Proc Format with cntlin). The data set would have the WeekYear values in the Start variable and the SAS date values as label.

- Apply the informat on your WeekYear variable to populate a new variable containing SAS date values as required

Occasional Contributor
Posts: 15

Re: How to get the first day of a week

Thank you Patrick!! I will follow your suggestions to correct this data set!! Much appreciate it!!!

Ask a Question
Discussion stats
  • 2 replies
  • 2 in conversation