Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 当列的名称必须是字符串时,如何在data.table中创建新列_R_Data.table - Fatal编程技术网

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

R 当列的名称必须是字符串时,如何在data.table中创建新列,r,data.table,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] 但是,我想要 #> v1 v2 v3 #> 1: 1 2 7 #> 2: 2 3 8 #> 3: 3 4 9 我可以这样做,将变量名括在括

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

例如:

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

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

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

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
DT=data.table(v1=c(1,2,3),v2=2:4)
新的变量v1 v2 v3
#> 1:  1  2       7
#> 2:  2  3       8
#> 3:  3  4       9
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