我有一个数据表,看起来像这样:
DT <- data.table(Zeit = c(0.024, 0.4, 0.05),
Gier = c(1, 2, 3),
GierVZ = c(1, 0, 1),
Quer = c(2, 4, 6))
现在,我想更新并向此数据表中添加一些列。但是我无法更新Gier
两次,因为它将创建重复副本并出现错误。
DT[, ':='(Zeit = round(Zeit, digits = 2),
Gier = replace(Gier, Gier == 163.83, NA),
GierVZ = factor(GierVZ, levels = c(0, 1), labels = c("positiv", "negativ")),
Quer = Quer * 9.81,
Gier = ifelse(GierVZ == "negativ", Gier * -1, Gier))]
通常如何避免这种情况,仍然创建一些可读的快速代码?我确信对此有一个简单的答案。但是我是数据表的新手,而且我认为(至少目前)它不像dplyr那样直观,但是对于我的大数据来说它要快得多。
您可以Gier
用大括号括起来:
DT[, ':='(Zeit = round(Zeit, digits = 2),
Gier = {Gier[Gier == 163.83] <- NA; ifelse(GierVZ, -Gier, Gier)},
GierVZ = factor(GierVZ, levels = c(0, 1), labels = c("positiv", "negativ")),
Quer = Quer * 9.81)]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句