2015-07-10 126 views
1

我想根据日期创建分类变量并输入以下代码。根据日期在sas中创建分类变量

data temppricedata; 
    set SASHELP.PRICEDATA; 
    date_group=''; 

    IF (date>='MAR2002'd) THEN 
     date_group='new'; 

    IF (date<'MAR2002'd) THEN 
     date_group='old'; 
run; 

但是我有错误,如

ERROR: Invalid date/time/datetime constant 'MAR2002'd. 
    ERROR 77-185: Invalid number conversion on 'MAR2002'd. 

我相信格式如下SAS日期格式是MONYY。 我不知道如何解决这个问题。

+3

不是,它是DDMONYY。请参阅[this](http://support.sas.com/documentation/cdl/en/lrcon/62955/HTML/default/viewer.htm#a000780334.htm)。 – Jeff

+0

谢谢!是的,它现在适用于01mar02或01mar2002 – user3042610

+0

@Jeff请你作为一个完整的答案发布,这样你和OP可以享受好处? –

回答

2

正如@Jeff所述,指定SAS日期常量的正确方法是DDMONYY或DDMONYYYY。

data temppricedata; 
     set SASHELP.PRICEDATA; 
     length date_group $3.; 
     IF date >= '01MAR2002'd THEN date_group='new'; 
     ELSE IF date < '01MAR2002'd THEN date_group='old'; 
    run;