我有一个data.table对象,其下面的列。 在其中一列上执行exp会导致错误,如下所示:
data <- data.table('Speed' = c(90, 95, 100, 30, 49, 45, 10, 82),
'Fuel' = c(0.5, 0.1, 0.3, 0.15, 5, 3, 4, 2))
speed_var='Speed'
exp(data[,c(speed_var)])
错误消息是
non-numeric argument to mathematical function
奇怪的是,exp(data[,'Speed'])
可以正常工作,但是如果我将列名放在变量中并访问,则会出现此错误。有什么想法吗?
谢谢!
答案 0 :(得分:1)
我们可以使用[[
exp(data[[speed_var]])
或者如果我们需要将其作为data.table
exp(data[, ..speed_var])
或在.SDcols
中指定列,然后将exp
应用于.SD`
data[, exp(.SD), .SDcols = speed_var]