作者west1996 ()
看板Statistics
标题Re: [程式] SAS日期汇入
时间Mon Jun 16 18:51:25 2014
※ 引述《ilkny (小瓶)》之铭言:
: ------------------------------------------------------------------------
: [软体程式类别]: SAS
: [程式问题]: 日期资料汇入
: [软体熟悉度]: 高(1年以上)
: [问题叙述] & [程式范例]:
: 以下程式是希望将字串汇入SAS改成日期格式,但不知道为什麽无法将19050201 改成 190
: 5-02-01 ?
: 有 google 到 yearcutoff 指令,但也不清楚该设什麽值 囧
: 或是要选其他的 format 吗 @@?
: 希望知道的板友帮忙解决,谢谢orz
: data aa;
: input x $ @@;
: cards;
: 19050301 20001013 10950201
: ;
: data bb;
: set aa;
: tt=mdy(substr(x,5,2), substr(x,7,2), substr(1,4));
: format tt yymmdd10.;
: run;
: -----------------------------------------------------------------------------
首先不知道上面程式中的10950201是真的要那一年还是不小心打错?
另外tt=那一个公式里面的最後一个substr(1,4)是不是也是typo?应该是substr(x,1,4)
如果两个都是typo的话,理论上你的程式应该是可以跑的!!
不过实际上也不用那麽麻烦,用下面的写法就可以一次解决
data aa;
input x @@;
informat x yymmdd.;
format x yymmdd10.;
cards;
19050301 20001013 19050201
;
run;
proc print data=aa; run;
p.s.万一真的是要1095/2/1的话那就没救了,刚测了一下目前好像只能正确的显示1582年
以後的日期,再早的就显示不出来.....
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.44.15.27
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/Statistics/M.1402915889.A.D82.html
1F:推 ilkny:substr(1,4) 是 typo 没错,抱歉… 06/16 19:37
2F:→ ilkny:1095就是我想问的问题~ 原来太早不行啊…… 06/16 19:39
3F:→ ilkny:还是谢谢你! 又多学了一种写法 06/16 19:40