如果列的名称必须是字符串,如何在data.table中创建新列

时间:2016-03-19 11:38:21

标签: r data.table

如果列的名称必须是字符串或字符,如何在data.table中创建新列?

例如:

library(data.table)
DT = data.table(v1=c(1,2,3), v2=2:4)
new_var <- "v3"
DT[, new_var:=v2+5]

我得到了

DT
#>    v1 v2 new_var
#> 1:  1  2       7
#> 2:  2  3       8
#> 3:  3  4       9

但是,我想要

#>    v1 v2      v3
#> 1:  1  2       7
#> 2:  2  3       8
#> 3:  3  4       9

1 个答案:

答案 0 :(得分:4)

我可以这样做,将变量名括在括号内:

DT = data.table(v1=c(1,2,3), v2=2:4)
new_var <- "v3"
DT[, eval(new_var):=v2+5]
# or
DT[, (new_var):=v2+5]
DT
#>    v1 v2      v3
#> 1:  1  2       7
#> 2:  2  3       8
#> 3:  3  4       9