R で data.tableに変数で指定した名前の列を追加したい
結論
eval
以外のいい方法が見つからなかった。
sample_data_table <- data.table(V1=1, V2=2) new_column_name <- 'new_column' expr <- parse(text = paste(new_column_name, ":= V1+V2")) sample_data_table[, eval(expr)] ## Checking the result print(sample_data_table) # V1 V2 new_column # 1: 1 2 3
説明
new_column_name
で指定したカラム名のカラムを追加している。- 内容は、
V1+V2
- 静的に書いた場合こういうコードになる。
sample_data_table[, new_column := V1+V2]
new_column
の部分を変数で指定するためにeval
している。