考虑以下两个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给出了一个找不到“组”的错误:
x[y,cost:=(cost-mean(cost)),by=.(group)]
有没有一种在不向x添加列的情况下执行此操作的好方法?
最佳答案
这对您有用吗?
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
关于r - 联接表中的非id列对data.table进行分组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37285184/