【发布时间】:2021-04-23 15:30:17
【问题描述】:
我有两个数据框。一种具有相关时间范围(以年为单位)的观察结果,另一种具有上下文因素的时间序列数据。每次观察的时间范围都不同。我想计算每个观察时间范围的上下文因素时间序列数据的平均值。如果输出成为时间范围数据帧的新列,那将是最好的。
所以如果给出这两个数据框:
time_horizon <- data.frame(observation = c("A", "B", "C"),
start = c(2010, 2012, 2011),
end = c(2013, 2014, 2015)
)
data <- data.frame(Year = c(2010:2015),
Value = c(26374, 21134, 21212, 21111, 21344, 22222)
)
结果我需要这样的东西:
output <- data.frame(observation = c("A", "B", "C"),
start = c(2010, 2011, 2012),
end = c(2013, 2014, 2015),
mean = c(22457.75, 21222.33, 21404.6)
)
我已经尝试了几种这样的代码组合。
time_horizon$mean <- mean(
data$Value[data$Year >= time_horizon[, "start"] &
data$Year <= time_horizon[, "end"]
]
)
但显然这只会生成一列相等的值,所以我猜单独mean() 并不能完成这项工作。
【问题讨论】:
标签: r