通过指标在多个列上运行data.table中的函数

时间:2017-04-04 15:33:27

标签: r data.table

我正在尝试对我的数据集进行转换(变量均值(变量))但是按id类别进行转换。我得到一个常见的错误

Type of RHS ('double') must match LHS ('integer').

我从未真正理解过。由于类型不同,data.table无法将新变量分配给旧变量?但一切都是数字......例如:

test <- data.table(id=rep(1:10,each=20),time=rep(1991:2010,10),
                       y=rbinom(200,1,0.1),
                       x1=rnorm(200,mean=5,sd=2),
                       x2=rnorm(200),
                       x3=rbeta(200,shape1=1,shape2=2))
cols <- c("y","x1","x2","x3")
test[ , (cols) := lapply(.SD, function(x){x-mean(x,na.rm=T)}), .SDcols = cols,by=id]

此代码改编自this问题,如果删除by=id参数,则可以正常使用。我错过了什么?

0 个答案:

没有答案