作者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://www.ptt.cc/bbs/Statistics/M.1402915889.A.D82.html
推 ilkny:substr(1,4) 是 typo 沒錯,抱歉… 06/16 19:37
→ ilkny:1095就是我想問的問題~ 原來太早不行啊…… 06/16 19:39
→ ilkny:還是謝謝你! 又多學了一種寫法 06/16 19:40