用某些列值更改行

时间:2019-12-17 16:59:03

标签: r dataframe r-package

我有一个包含3列$ a(字符),$ b(字符)和$ c(整数)的数据框。

   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

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

1 个答案:

答案 0 :(得分:1)

您首先可以获取条件所在的所有行:

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

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

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