列上的data.table操作

时间:2017-05-23 07:29:54

标签: r data.table

我想对data.table中的列列表执行一些操作。 我在这里举个例子。实际上我在data.table(DT)中有大约30个变量。这就是为什么有一些行可以对我感兴趣的变量运行循环。 由于我想保留输入DT,我会使用DT2< - DT进行复制以对其进行操作。 最终这可以在最初的一个DT上完成。 错误消息显示:

  

* eval中的错误(DT [,(var)])* eval(DT [,variable6]):非数字   二元运算符的参数*

我还没在论坛上找到合适的答案。 很抱歉我提出了我的问题。不习惯!

感谢您的帮助。

library(data.table)
DT <- data.table(
  variable1 = c("a", "b", "c", "d", "e"),
  variable2 = 1:5,
  variable3 = c(1, 2, 5, 6, 8),
  variable4 = c(1, 2, 5, 6, 8),
  variable5 = c(1, 2, 5, 6, 8),
  variable6 = c(12, 14, 18, 100, 103),
  variable7 = c(0.02, 0.02, 0.02, 0.02, 0.02))
cols = sapply(DT, is.numeric)
cols = cols[-c(6, 7)]
cols = names(cols)[cols]
DT2 <- DT
for(var in cols) {
  DT2[, (var)] == eval(DT[, (var)]) * eval(DT[, variable6]) / eval(DT[variable7])
}

0 个答案:

没有答案