我有一个存储在变量中的列名。使用该变量,我想修改它引用的列。
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
正确的方法是什么?
答案 0 :(得分:2)
尝试对timestamp.column
和get
的列值使用圆括号
library(data.table)
dat[, (timestamp.column) := as.POSIXct(get(timestamp.column))]
如@akrun所述,更好的方法是使用.SDcols
dat[, (timestamp.column) := lapply(.SD,as.POSIXct),.SDcols = timestamp.column]