考虑以下两个data.tables:
x <- data.table(id=c(1,2,3,4),cost=c(0.7,0.2,0.5,0.9))
y <- data.table(id=c(1,2,3,4),group=c(1,2,1,2))
setkey(x,id)
setkey(y,id)
我想通过减去y中的组来平均化成本。
我的尝试如下,但是,R给出了一个无法找到的错误&#39; group&#39;:
x[y,cost:=(cost-mean(cost)),by=.(group)]
是否有一种很好的方法可以在不向x?
添加列的情况下执行此操作答案 0 :(得分:0)
这对你有用吗?
output <- y[x][, normcost:=(cost-mean(cost)), by=group]
output
# id group cost normcost
# 1: 1 1 0.7 0.10
# 2: 2 2 0.2 -0.35
# 3: 3 1 0.5 -0.10
# 4: 4 2 0.9 0.35