【发布时间】:2018-11-07 13:39:54
【问题描述】:
我有一个包含 100 多个时间序列数据框 my.list 的列表,每个产品在其自己的数据框中都有每日观察结果。有些值是 NA,没有任何日期记录。我想更新此列表中的每个数据框以显示日期和NA,如果它在此日期没有记录。
日期:
start = as.Date('2016/04/08')
full <- seq(start, by='1 days', length=10)
时间序列数据示例:
d1 <- data.frame(Date = seq(start, by ='2 days',length=5), Sales = c(5,10,15,20,25))
d2 <- data.frame(Date = seq(start, by= '1 day', length=10),Sales = c(1, 2, 3,4,5,6,7,8,9,10))
my.list <- list(d1, d2)
我想将所有 full 日期值合并到每个数据框中,如果不存在匹配项,则 sales 为 NA:
my.list
[[d1]]
Date Sales
2016-04-08 5
2016-04-09 NA
2016-04-10 10
2016-04-11 NA
2016-04-12 15
2016-04-13 NA
2016-04-14 20
2016-04-15 NA
2016-04-16 25
2016-04-17 NA
[[d2]]
Date Sales
2016-04-08 1
2016-04-09 2
2016-04-10 3
2016-04-11 4
2016-04-12 5
2016-04-13 6
2016-04-14 7
2016-04-15 8
2016-04-16 9
2016-04-17 10
【问题讨论】:
-
这基本上就是你在基础 R 中使用
merge得到的,即merge(d1,d2,all.x=T,all.y=T, "Date")
标签: r date time-series match