替换data.table子集中的值

时间:2017-07-06 23:03:07

标签: r data.table

我想我有这个:

dt <- data.table(mtcars)[1:3, ]
dt[wt == 2.620, "am"] <- 4
dt[wt == 2.620,]

我的输出是:

    mpg cyl disp  hp drat   wt  qsec vs am gear carb
1:  21   6  160 110  3.9 2.62 16.46  0  4    4    4

我想仅在40列中将值gear替换为carb

最终数据如下所示:

    mpg cyl disp  hp drat    wt  qsec vs am gear carb
1: 21.0   6  160 110 3.90 2.620 16.46  0  4    0    0
2: 21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
3: 22.8   4  108  93 3.85 2.320 18.61  1  1    4    1

2 个答案:

答案 0 :(得分:3)

在你的小例子中,@ HenryRice提出的方法就足够了(可能还有一个子集wt == 2.62)。

如果您是在更多行或列上执行此操作,则在此方案中使用data.table的{​​{1}} / for循环将非常有用

set

答案 1 :(得分:-1)

像这样:

dt$carb[dt$carb==4] <- 0
dt$gear[dt$gear==4] <- 0