看板 Statistics 關於我們 聯絡資訊
※ 引述《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