【发布时间】:2020-05-17 14:53:14
【问题描述】:
我有一个如下所示的数据表:
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 = ifelse(GierVZ == "negativ", replace(Gier, Gier == 163.83, NA)* -1, replace(Gier, Gier == 163.83, NA)))没有完成任务吗? -
确实如此,但这样做是不是一个好方法?如果您想第三次更改列怎么办?如果你想用一列做更多的事情怎么办?
标签: r performance data.table dplyr readability