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

时间:2019-12-19 23:35:54

标签: r data.table

我有一个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'])可以正常工作,但是如果我将列名放在变量中并访问,则会出现此错误。有什么想法吗? 谢谢!

1 个答案:

答案 0 :(得分:1)

我们可以使用[[

将列提取为向量
exp(data[[speed_var]])

或者如果我们需要将其作为data.table

exp(data[, ..speed_var])

或在.SDcols中指定列,然后将exp应用于.SD`

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