2016-03-19 25 views
1

如何在列名必须是字符串或字符时在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 

回答

3

我可以做到这样,通过括号内围住变量名:

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 
相关问题