SAS中文论坛
标题:
在sas中如何修改日期值
[打印本页]
作者:
shiyiming
时间:
2003-11-16 22:30
标题:
在sas中如何修改日期值
由于小弟对sas处理时间变量的技巧非常不熟悉,故有此一问,程序如下:
data t1;
input id date1 date2;
informat date1 ddmmyy10. date2 ddmmyy10.;
cards;
1 12/05/1992 13/11/1945
2 11/03/2022 23/12/1932
run;
data t2;
set t1;
if id=2 then date1='12/10/1998'd;
run;
proc print;
format date1 ddmmyy10. date2 ddmmyy10.;
run;
运行后,log窗口提示如下:
163 if id=2 then date1='12/10/1998'd;
-------------
77
ERROR: Invalid date/time/datetime constant '12/10/1998'd.
ERROR 77-185: Invalid number conversion on '12/10/1998'd.
我到sas网站查找解决方法无果,(我对sas网站使用同样非常不熟悉)故恳请高人指点。谢谢!
作者:
shiyiming
时间:
2003-11-17 10:01
标题:
原来如此
sas在处理日期变量时,通过cards(datalines)读入具体日期值时,可以用格式输入,但在利用赋值语句给一个日期变量赋值时,就要使用日期常量的方式,而sas中日期常量采用‘日期+月份前三个英文字母+年份’后跟d的形式表示。所以如以上我的程序的写法是不可能得到预期结果的。只需将赋值语句改为date1=‘12oct1998’d即可。
为自己学艺不精汗颜!
作者:
shiyiming
时间:
2003-11-17 11:10
高!实在是高!
你也可以这样啊:
if id=2 then date1=mdy(10,12,1998);
作者:
shiyiming
时间:
2003-11-17 12:31
data t1;
input id d1:$10. d2:$10.;
date1=input(d1,ddmmyy10.);
date2=input(d2,ddmmyy10.);
format date1 ddmmyy10.;
format date2 ddmmyy10.;
cards;
1 12/05/1992 13/11/1945
2 11/03/2022 23/12/1932
run;
作者:
shiyiming
时间:
2003-11-17 13:13
还是willon高啊,呵呵!
作者:
shiyiming
时间:
2003-11-22 13:26
标题:
3x a lot
受益匪浅! <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) --> <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->
欢迎光临 SAS中文论坛 (http://mysas.net/forum/)
Powered by Discuz! X3.2