【发布时间】:2016-04-19 20:52:20
【问题描述】:
我有一个 900,000 x 500 类型的数据集,但下面显示了一个适合该问题的玩具数据集。
library(data.table)
df1 <- data.table(x = c(1,2,4,0), y = c(0,0,10,15), z = c(1,1,1,0))
我想做以下事情:
- 对于列 y 和 z
- 选择值 = 0 的行
- 将这些替换为 max+1,其中 max 是在整个列上计算的
我对 data.table 很陌生。在stackoverflow上查看问题示例,我找不到类似的问题,除了这个: How to replace NA values in a table *for selected columns*? data.frame, data.table
我自己的尝试如下,但这不起作用:
for (col in c("x", "y")) df1[(get(col)) == 0, (col) := max(col) + 1)
显然,我还没有习惯data.table,所以我现在正在用头撞墙......
如果除了data.table 之外还有人可以提供dplyr 解决方案,我将不胜感激。
【问题讨论】:
标签: r data.table