如果没有使用列名就可以使用以下data.table功能,我正在徘徊:
dt <- data.table(mtcars)[,.(mpg, cyl)]
dt[,`:=`(avg=mean(mpg), med=median(mpg))]
例如,假设我有一个函数可以返回多个这样的列
mfun=function(x){cbind(x^2,x^3)}
但是,如果我想以特定方式将其分配为新列,R会执行两次mfun函数,效率不高。
dt[,`:=`(sqr=mfunc(mpg)[,1], cub=mfunc(mpg)[,2])]
因此,如果没有“解决方法”,是否可以执行类似以下操作:
dt[,`:=`(mfunc(mpg))] #this returns an error
dt[,`:=`(error2=mfunc(mpg))] #this returns an error