1
我有一个数据帧,如下面的数据帧,只有更多的列和一个额外的ID变量。在两列上匹配DF并乘以
data <- data.frame(year = c(rep(2014,12), rep(2015,12)), month = c(seq(1,12), seq(1,12)), value = c(rep(5,24)))
某些年/月组合的数据不正确,必须通过乘以以下所示期间的因子进行调整。
fix <- data.frame(year = c(2014, 2014, 2015), month = c(1, 5, 6), f = c(.9, 1.1, 12))
我目前通过ddply这样做,但我正在寻找一个更优雅的解决方案:
factorize <- function(x) {
x$value = x$value * fix[fix$year == unique(x$year) & fix$month == unique(x$month),3]
x
}
data2 <- ddply(data, c("year", "month"), factorize)
任何想法或建议?
谢谢!