[程式] SAS 資料處理問題請益

看板Statistics作者 (彭魚厭)時間12年前 (2013/03/19 05:39), 編輯推噓4(4010)
留言14則, 3人參與, 最新討論串1/1
------------------------------------------------------------------------ TITLE請著名軟體類別 按ctrl+v可預覽 發文前請把灰色的註解刪除 可使用ctrl+y刪除一整行 [軟體程式類別]: SAS [程式問題]: 資料處理 [軟體熟悉度]: 新手(不到1個月) [問題敘述]: 1.原想分開處理日期跟時間再換算,但日期的部分一直出現error, 所以想合併日期跟時間轉成可直接進行計算SAS的日期時間隔式, 但一直做不出來,想請高手解惑; 2.另外因為類似資料集有幾百個需要相同的處理, 想請高手有沒有比較快速的方式,謝謝!! [程式範例]: ----------------------------------------------------------------------------- 原資料檔案如下: 序號 Date 買/賣 時間 1 20090101 B 07:00:01 2 20090101 S 07:01:59 3 20090207 S 12:03:40 4 20090210 B 23:12:32 . . . . . . 欲計算每筆序號間隔時間,如: 序號 Date 買/賣 時間 間隔時間 1 20090101 B 07:00:01 0 2 20090101 S 07:01:39 0天0時1分38秒 3 20090107 S 12:03:40 6天5時2分3秒 4 20090110 B 23:12:42 3天 11時9分2秒 data ddd; set A; TIME1=COMPRESS(TIME,":") ; run; data dd2;set ddd; ttt=HMS(substr(TIME1,1,2),substr(TIME1,3,2),substr(TIME1,5,2) ); kkk=ttt-lag(ttt); dhour=hour(kkk); dmin=minute(kkk); dsecond=second(kkk); kk=MDY(substr(DATE,5,2),substr(DATE,7,2),substr(DATE,1,4))-MDY(substr(lag(DATE),5,2),substr(lag(DATE),7,2),substr(lag(DATE),1,4)); /*出現error*/ dday=day(kk); run; -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.193.18.162

03/19 09:37, , 1F
試試用 INTCK 這個 function來計算時間間隔
03/19 09:37, 1F

03/19 12:42, , 2F
請問INTCK是不是最小單位只有到week?因為我需要天數...
03/19 12:42, 2F

03/19 18:11, , 3F
解決了,謝謝!!
03/19 18:11, 3F

03/20 08:54, , 4F
以你的資料來說 用intck可能還是錯的
03/20 08:54, 4F

03/20 08:54, , 5F
財務研究用的通常都是 差多少個交易日
03/20 08:54, 5F

03/20 09:34, , 6F
intck 可以用 "weekday" 不計星期六、日
03/20 09:34, 6F

03/20 09:35, , 7F
但是其他假日每個國家/每年都不一定一樣
03/20 09:35, 7F

03/20 09:36, , 8F
sas應該不怎麼可能幫你考慮到...
03/20 09:36, 8F

03/20 09:49, , 9F
可以google到有人已經寫好的macro,將holiday考慮進去
03/20 09:49, 9F

03/20 10:49, , 10F
這個研究者要想辦法解決的 沒辦法靠SAS
03/20 10:49, 10F

03/20 10:50, , 11F
但並非無法解決 只是提醒一下原提問者要考慮
03/20 10:50, 11F

03/20 10:51, , 12F
工作日(trading day) 日曆日是不一樣的
03/20 10:51, 12F

03/20 13:03, , 13F
謝謝J大和t大的提醒,我會再想想辦
03/20 13:03, 13F

03/20 13:04, , 14F
法~~
03/20 13:04, 14F
文章代碼(AID): #1HHuc4DV (Statistics)