Help using Base SAS procedures

Need help working with the dates

Reply
New Contributor
Posts: 2

Need help working with the dates

Hi everyone,

I am trying to work with a dataset and have been struggling with creating a new variable involving date.

In my dataset (.sas7bdat), I have a variable with a date informat (mm/dd/yy10.).

What I am trying to do is to create a variable called 'index' that codes 0 if date before 5/1/2010 and 1 if date is after 5/1/2010.

I tried to code in a data step:

data one; set new;

if date>=05/01/2010 then index=1;

else index=0;

run;

When I proc print, the index=1 for all of my observations.

What is wrong with my code? I have been struggling for hours.. Please help!!

Thank you!

Respected Advisor
Posts: 3,156

Re: Need help working with the dates

Posted in reply to greelights01

"if date>=05/01/2010 then index=1;"

date here is numeric, while   05/01/2010 is not. When comparing,  05/01/2010 is taken as missing value which is the smallest. That is why you always get index=1.

Switch it to :

"if date>='01MAY2010'D then index=1;" 

New Contributor
Posts: 2

Re: Need help working with the dates

Thank you so much Hai.kuo!

Worked really well. You're awesomeSmiley Happy

Regular Contributor
Posts: 184

Re: Need help working with the dates

05/01/2010 is not a valid date literal, but it is a valid numeric expression.

( (5/1)/2010 ) evaluates to 0.0024875, which interprets as 1 January 1960.

Respected Advisor
Posts: 3,156

Re: Need help working with the dates

Aha, miss that part, should have run the test. Thanks, @Howles!

OP, please weight in this correct information.

Ask a Question
Discussion stats
  • 4 replies
  • 198 views
  • 2 likes
  • 3 in conversation