[问题] 周资料与日资料的合并、填满NA

楼主: s3714443 (metalheads)   2017-09-20 12:41:44

各位好,小弟碰到一个问题
因为我想要同时判定周资料与日资料的技术指标
所以把它们用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