我有一个包含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
我必须使用列名,而不是列号。您有推荐的套餐吗?还是基本功能可以做到?
答案 0 :(得分:1)
您首先可以获取条件所在的所有行:
replaces <- which(is.na(df$a) & df$c == 0)
然后更新“ a”和“ c”字段,使“ b”保持不变:
df[replaces,]$a <- 'IGNORED'
df[replaces,]$c <- 'IGNORED'