【发布时间】:2021-10-06 08:25:05
【问题描述】:
这可能是一个非常初级的问题。我想在现有的 data.table 对象中创建一个新变量,并想用不同的名称保存新对象。但是,我面临一个问题:
library(data.table)
DT = data.table(x=rep(c("b","a","c"),each=3), y=c(1,3,6), v=1:9)
a <- colnames(DT)[-1] #variables to be modified
a.va <- paste(a, "x", sep = "_") #new variables name
DT2 <- DT[, (a.va) := lapply(.SD, FUN = function(x) (sum(x, na.rm = T)-x) / (.N - 1)), .SDcols = a, by = x]
但是,它同时更改了两个现有对象DT。我想保持原始对象DT 完好无损。在我原来的数据集中,有100多个变量,所以不能一一单独创建变量。
【问题讨论】:
标签: r data.table data-cleaning