【发布时间】:2018-10-21 08:17:45
【问题描述】:
我了解如何使用 .SD 对多个列执行操作;我只是不知道如何将这些新值分配给我的数据表中的新变量(不覆盖输入变量)
在本例中,我创建了三个以字符串“newvars”结尾的新变量。我将这些新变量合并回数据表。是否可以在没有合并的情况下创建新的变量?
mtcars <- data.table( mtcars )
newvars <- mtcars[ , lapply( .SD , function( Z ) Z * mtcars[[ "wt" ]]) , .SDcols= c("hp","drat","gear")]
colnames( newvars ) <- paste( colnames( newvars) , "newvars", sep="_")
mtcars <- cbind( mtcars , newvars )
似乎应该有一种直接的方式来做到这一点。
如果我没有这么多专栏,我会一一列出来
mtcars[ , hp_new := hp*wt ]
谢谢。
【问题讨论】:
-
等待在这种方法中我在哪里分配“newvars”?
标签: r data.table