02-18-2015 06:44 PM
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;
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!!
02-19-2015 09:27 AM
"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;"
02-19-2015 11:08 AM
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.