[程式] SAS 填滿時間序列間距時指定填入值問題

看板Statistics作者 (Mr.Smile)時間10年前 (2015/06/01 17:11), 10年前編輯推噓2(203)
留言5則, 3人參與, 最新討論串1/1
[軟體程式類別]: SAS [程式問題]: 時間序列 [軟體熟悉度]: 低(1~3個月) [問題敘述]: 小弟想要把類似這樣的資料 ID DAY value 0001 01JAN2008 1 0001 04JAN2008 1 0001 07JAN2008 1 0002 03JAN2008 1 0002 08JUN2008 1 讓SAS以每個ID為分組,自動填滿DAY當中的間距,並且新增的值value要是0,變成這樣 ID DAY value 0001 01JAN2008 1 0001 02JAN2008 0 0001 03JAN2008 0 0001 04JAN2008 1 0001 05JAN2008 0 0001 06JAN2008 0 0001 07JAN2008 1 0002 03JAN2008 1 (這段省略) (都是0) 0002 08JUN2008 1 我知道這功能在STATA中可以利用tsfill指令後再把遺漏值置換為0來達成, 但爬文和拜估狗大神只找到SAS中有類似的proc expand, 但它會把value也全部都填入1而無法填入0或任何指定值或遺漏值, 不知用什麼方式可以做到我想要的功能呢? 拜謝版上各位高手了! [程式範例]: /* 目前只能這樣,不知道還有沒有我不知道的參數或者其他的proc可用 */ /* 感謝各位大大了! */ proc expand data=DATA01 out=DATA01_new to=day; by ID; id DAY; run; -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.109.122.123 ※ 文章網址: https://www.ptt.cc/bbs/Statistics/M.1433149893.A.3C2.html ※ 編輯: yellowleaf (140.109.122.123), 06/01/2015 17:12:38 ※ 編輯: yellowleaf (140.109.122.123), 06/01/2015 17:14:09

06/01 21:13, , 1F
04JAN2008的value是不是應該是1?
06/01 21:13, 1F
※ 編輯: yellowleaf (111.250.35.26), 06/02/2015 00:04:37

06/02 00:05, , 2F
喔 對 沒錯 多謝提醒!!
06/02 00:05, 2F

06/02 06:14, , 3F
你把新資料的value先全部變成0, 再把舊資料merge進來
06/02 06:14, 3F

06/02 06:14, , 4F
兩個data step就可以搞定,沒那麼複雜
06/02 06:14, 4F

06/02 11:16, , 5F
原來如此 解決了 謝謝C大和I大!!
06/02 11:16, 5F
文章代碼(AID): #1LR275F2 (Statistics)