2016-03-19 24 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 
相關問題