更改具有特定列值的行

Changing rows with certain column values

我有一个包含 3 列 $a (char)、$b (char) 和 $c (int) 的数据框。

   a       b     c
1  NA      NA    NA
2  NA    Donald  0
3  shawn  john   120
.
.
.

我想替换 df$c==0 和 df$a==NA 的行,但保持 df$b 不变。 我想要 df[df$a && df$c==0 ==NA] <- c("IGNORED",same as before,"IGNORED")

这样的东西

所以我的第二行将变成

2  IGNORED  Donald  IGNORED

我必须使用列名,而不是列号。有推荐的套餐吗?或者基本功能可以吗?

您可以先获取满足您的条件的所有行:

replaces <- which(is.na(df$a) & df$c == 0)

然后更新 'a' 和 'c' 字段,保持 'b' 不变:

df[replaces,]$a <- 'IGNORED'
df[replaces,]$c <- 'IGNORED'