如何使NA相对于另一列的值

时间:2019-09-09 17:09:42

标签: r dataframe

我想对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。

2 个答案:

答案 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