使用赋值运算符和字符串列名称更新数据 table 列的值不起作用
Updating values of a data table column with both assignment operator and string column name does not work
我需要像这样更新数据 table 中列的值:
x[, myvar := make.names(myvar)]
这很好用。但是,我现在需要使用带有列名称的字符串变量,这似乎不起作用:
mystringvar <- "myvar"
x[, get(mystringvar) := make.names(get(mystringvar))]
使用字符串变量而不是写列名称的正确方法是什么?
输出:Error in get(mystringvar) : object 'myvar' not found
.
在左侧您不需要 get
使用 (column_name)
应该可以。
library(data.table)
x[, (mystringvar) := make.names(get(mystringvar))]
我们可以使用.SDcols
library(data.table)
x[, (mystringvar) := make.names(.SD[[1]]), .SDcols = mystringvar]
我需要像这样更新数据 table 中列的值:
x[, myvar := make.names(myvar)]
这很好用。但是,我现在需要使用带有列名称的字符串变量,这似乎不起作用:
mystringvar <- "myvar"
x[, get(mystringvar) := make.names(get(mystringvar))]
使用字符串变量而不是写列名称的正确方法是什么?
输出:Error in get(mystringvar) : object 'myvar' not found
.
在左侧您不需要 get
使用 (column_name)
应该可以。
library(data.table)
x[, (mystringvar) := make.names(get(mystringvar))]
我们可以使用.SDcols
library(data.table)
x[, (mystringvar) := make.names(.SD[[1]]), .SDcols = mystringvar]