Re: [程式] sas時間格式處理問題

看板Statistics作者 (另一扇門)時間15年前 (2010/06/05 22:25), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/4 (看更多)
就我的認知 讀進資料格式要用informat 將電腦資料顯示我們要的格式要用format data aa; informat date yymmdd10.; format date yymmdd10.; input date; cards; 19970422 20020808 19961025 ; run; 藉由這篇文章 想衍生一下我遇到的問題 我有兩個變數 start_date, end_month start_date 已讀入sas,設成日期格式,格式設成 yymmdd10. (ex:20090101) end_month 已讀入sas,設成「數字」格式 (ex:200905) 現在我想要計算start_date和end_month之間差了幾個月 理想狀況可以用 intck('month', start_date, end_month) 所以想將end_month由「數字」格式轉成「日期格式」 試了幾種方法都失敗 想請問大家,我失敗的地方在哪邊? 想法一: end_date=compress(end_month||10); /*想將200905變成20090510*/ informat end_date yymmdd10.; /*並且將20090510讓sas讀成日期格式*/ 再用 intck('month', start_date, end_date) 來計算兩個日期格式的差異月數 不過...失敗 想法二: end_date = end_month*100+10; /*用compress函數行不通,我直接計算出20090510這個數字 XD*/ informat end_date yymmdd10.; 再用 intck('month', start_date, end_date) 還是失敗 看了上一篇i版友的回答 我試著用 MDY 這個函數產生 end_date ,結果是可行的 不過還是想討論看看,上述我兩種想法哪邊有問題 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.136.108.103
文章代碼(AID): #1C2bvgnC (Statistics)
文章代碼(AID): #1C2bvgnC (Statistics)