我想对A列NA的每一行取值,其中B列为2:
数据
A B
1 2
2 4
NA 5
6 2
输出
A B
NA 2
2 4
NA 5
NA 2
B的第一行和最后一行是2,因此A在其中获得了NA。
答案 0 :(得分:2)
这是在基数R中使用ifelse
的一种方法-
df$A <- ifelse(df$B == 2, NA_real_, df$A)
答案 1 :(得分:1)
set.seed(0)
df <- data.frame(A = sample(1:10, size=5, replace=T),
B = sample(1:10, size=5, replace=T))
df
A B
1 9 7
2 4 2
3 7 3
4 1 1
5 2 5
df$A[df$B == 2] <- NA
df
A B
1 9 7
2 NA 2
3 7 3
4 1 1
5 2 5