使用赋值运算符和字符串列名称更新数据 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]