我希望能够在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
]
(因为这个bug),我使用相对复杂的as.list(.SD)[...]
结构而不是.SDcols
。)
我尝试首先为每行创建平均值,但没有找到如何将:=
与lapply()
组合的方法。
V1
和V2
而不是x
和y
。 - janosdivenyi.SD[, .(x, y)]
? - David Arenburg.SD[, c("x","y"), with=FALSE]
。 - jangorecki