R 中数学函数误差的非数字参数



我有一个带有以下列的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'])正在工作,但是如果我将列名放在变量中并访问,则会收到此错误。思潮? 谢谢!

我们可以将列提取为向量,并带有[[

exp(data[[speed_var]])

或者另一种选择,如果我们需要它作为data.table

exp(data[, ..speed_var])

或者在.SDcols中指定列,并将exp应用于 。标清'

data[, exp(.SD), .SDcols = speed_var]

最新更新