【问题标题】:non-numeric argument to mathematical function error in RR中数学函数错误的非数字参数
【发布时间】:2019-12-19 23:35:54
【问题描述】:

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

【问题讨论】:

  • 与问题本身无关,但您缺少一个结束 )。我不太了解 data.table,但它似乎与 this 以及链接到它的帖子有关。看看你用data[,c(speed_var)] 得到了什么:这是所选列的名称,而不是列本身

标签: r data.table


【解决方案1】:

我们可以使用[[将列提取为向量

exp(data[[speed_var]])

或者如果我们需要它作为data.table的另一个选项

exp(data[, ..speed_var])

或在.SDcols 中指定列并在.SD 上应用exp`

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多