[問題] 周資料與日資料的合併、填滿NA

作者: s3714443 (metalheads)   2017-09-20 12:41:44
https://imgur.com/a/sNZtc
各位好,小弟碰到一個問題
因為我想要同時判定周資料與日資料的技術指標
所以把它們用left_join弄再一起,也成功了
目前有一個問題,我想要如圖示那樣填滿na值
就是本週的日資料,都填入上週的周資料
不知道該怎麼解決呢QQ
感謝各位
作者: cywhale (cywhale)   2017-09-20 12:52:00
可以把周次鑑起來 比如week() 再利用周次當ID合併
作者: a181w   2017-09-20 19:15:00
i<-1while(i<=nrow(data)){if(is.na(data[,8]))data[i,8:12]=data[i-1,8:12]i<-i+1}我直覺會用迴圈寫 只是速度不快……
作者: clansoda (小笨)   2017-09-20 19:24:00
最快的方法用data.table
作者: bluecadence (Maxwell's demon)   2017-09-20 19:25:00
我的回答沒有針對你的問題回。但我覺得比較容易的方
作者: clansoda (小笨)   2017-09-20 19:25:00
跟cywhale大說的一樣,你要把周變成一個column假設week已經是column了
作者: bluecadence (Maxwell's demon)   2017-09-20 19:26:00
法,是將你的 daily time series 先轉成 xts 格式
作者: clansoda (小笨)   2017-09-20 19:27:00
dt[, Otw := first(Otw), by = week]
作者: bluecadence (Maxwell's demon)   2017-09-20 19:27:00
然後用 quantmod 套件裡面的 to.weekly() 函數 把
作者: bluecadence (Maxwell's demon)   2017-09-20 19:30:00
daily data 轉成 weekly data。日子會比較好過你也很容易可以轉成 monthly 用 to.monthly()可以參考 to.period() 這個函數抱歉是 xts 套件
作者: s3714443 (metalheads)   2017-09-20 19:35:00
感謝各位大大寶貴的意見 感恩!用week()做出新col是很棒的方法,但是碰到小問題就是20000129 20000201 這函數把他算在第五個禮拜 我很疑惑這兩個應該是不同禮拜的
作者: cywhale (cywhale)   2017-09-20 19:57:00
同樣在lubridate下還有isoweek() 這兩個日期出來是不同週
作者: s3714443 (metalheads)   2017-09-20 20:26:00
可問強者大大兩者差異嗎?套件說明看很久參透不出來XD自問自答,isoweek會考慮閏年XD不過我是用上週的周資料填入本週日資料,碰到年假gg QQ

Links booklink

Contact Us: admin [ a t ] ucptt.com