自分配给变量中包含的列名

时间:2019-04-27 15:34:42

标签: r data.table

我有一个存储在变量中的列名。使用该变量,我想修改它引用的列。

timestamp.column <- names(dat)[grep("time", names(dat), ignore.case = T)

这给我timestamp.column中的值“ TIME_STAMP”。 现在,我想使用引用该列的变量并将其转换为POSIXct。

dat[, get(timestamp.column) := as.POSIXct(get(test), format = "%Y-%m-%d %H:%M:%OS", tz = "GMT")

这时它说:

Error in get(timestamp.column) : object 'START_TIME' not found

正确的方法是什么?

1 个答案:

答案 0 :(得分:2)

尝试对timestamp.columnget的列值使用圆括号

library(data.table)
dat[, (timestamp.column) := as.POSIXct(get(timestamp.column))]

如@akrun所述,更好的方法是使用.SDcols

dat[, (timestamp.column) := lapply(.SD,as.POSIXct),.SDcols = timestamp.column]