【发布时间】:2016-07-13 18:31:54
【问题描述】:
我是 data.table 的新手,我希望在进入真正的大数据集领域时变得更好。
我正在尝试计算变量 x 的年均值,但从六月(y 年 -1)到六月(y 年)。这很容易使用plyr:
set.seed(9)
dat = data.frame(
year = rep(2000:2010, each = 12),
month = 1:12,
x = runif(12*length(2000:2010))
)
library(plyr)
ldply(unique(dat$year), function(i)
if(i == unique(dat$year)[1]) NULL else # in the event going too far back
data.frame(
year = i,
mean.x = mean(c(dat[dat$year == (i - 1) & dat$month == 7:12, "x"], dat[dat$year == i & dat$month == 1:6, "x"]))
)
)
但我正在努力将语法转换为data.table。我宁愿在不创建中间变量的情况下将所有内容向前移动 6 个月,因为我想在他们最初的 1 月至 12 月框架中总结一些变量。
感谢任何帮助!干杯
【问题讨论】:
标签: r data.table plyr