【发布时间】:2016-03-13 09:57:33
【问题描述】:
我想计算data.table 中许多变量与(加权)均值的偏差。
让我们来看看这个例子集:
mydt <- data.table(
id = c(1, 2, 2, 3, 3, 3),
x = 1:6,
y = 6:1,
w = rep(1:2, 3)
)
mydt
id x y w
1: 1 1 6 1
2: 2 2 5 2
3: 2 3 4 1
4: 3 4 3 2
5: 3 5 2 1
6: 3 6 1 2
我可以计算x和y的加权均值如下:
mydt[
,
lapply(
as.list(.SD)[c("x", "y")],
weighted.mean, w = w
),
by = id
]
(由于this 的错误,我使用了相对复杂的as.list(.SD)[...] 构造而不是.SDcols。)
我尝试先为每一行创建方法,但没有找到如何将:= 与lapply() 结合起来。
【问题讨论】:
标签: r data.table