作者s3714443 (metalheads)
看板R_Language
标题[问题] 周资料与日资料的合并、填满NA
时间Wed Sep 20 12:41:44 2017
https://imgur.com/a/sNZtc
各位好,小弟碰到一个问题
因为我想要同时判定周资料与日资料的技术指标
所以把它们用left_join弄再一起,也成功了
目前有一个问题,我想要如图示那样填满na值
就是本周的日资料,都填入上周的周资料
不知道该怎麽解决呢QQ
感谢各位
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.171.102.251
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1505882508.A.2F7.html
1F:→ cywhale: 可以把周次监起来 比如week() 再利用周次当ID合并 09/20 12:52
2F:推 a181w: i<-1 09/20 19:15
3F:→ a181w: while(i<=nrow(data)){ 09/20 19:15
4F:→ a181w: if(is.na(data[,8]))data[i,8:12]=data[i-1,8:12] 09/20 19:15
5F:→ a181w: i<-i+1 09/20 19:15
6F:→ a181w: } 09/20 19:15
7F:→ a181w: 我直觉会用回圈写 只是速度不快…… 09/20 19:16
8F:推 clansoda: 最快的方法用data.table 09/20 19:24
9F:推 bluecadence: 我的回答没有针对你的问题回。但我觉得比较容易的方 09/20 19:25
10F:→ clansoda: 跟cywhale大说的一样,你要把周变成一个column 09/20 19:25
11F:→ clansoda: 假设week已经是column了 09/20 19:26
12F:→ bluecadence: 法,是将你的 daily time series 先转成 xts 格式 09/20 19:26
13F:→ clansoda: dt[, Otw := first(Otw), by = week] 09/20 19:27
14F:→ bluecadence: 然後用 quantmod 套件里面的 to.weekly() 函数 把 09/20 19:27
15F:→ clansoda: 一行结束而且大概跑个半秒吧假如你的资料量不大 09/20 19:27
16F:→ bluecadence: daily data 转成 weekly data。日子会比较好过 09/20 19:30
17F:→ bluecadence: 你也很容易可以转成 monthly 用 to.monthly() 09/20 19:30
18F:→ bluecadence: 可以参考 to.period() 这个函数 09/20 19:34
19F:→ bluecadence: 抱歉是 xts 套件 09/20 19:35
20F:→ s3714443: 感谢各位大大宝贵的意见 感恩! 09/20 19:35
21F:→ s3714443: 用week()做出新col是很棒的方法,但是碰到小问题就是 09/20 19:36
22F:→ s3714443: 20000129 20000201 这函数把他算在第五个礼拜 我很疑惑 09/20 19:37
23F:→ s3714443: 这两个应该是不同礼拜的 09/20 19:37
24F:→ cywhale: 同样在lubridate下还有isoweek() 这两个日期出来是不同周 09/20 19:57
25F:→ s3714443: 可问强者大大两者差异吗?套件说明看很久参透不出来XD 09/20 20:26
26F:→ s3714443: 自问自答,isoweek会考虑闰年XD 09/20 20:27
27F:→ s3714443: 不过我是用上周的周资料填入本周日资料,碰到年假gg QQ 09/21 00:26