R 如何使一列的某个值相对于另一列为NA

R 如何使一列的某个值相对于另一列为NA,r,dataframe,R,Dataframe,我想对A列、NA列的每一行进行赋值,其中B列为2: 资料 输出 A B NA 2 2 4 NA 5 NA 2 B的第一行和最后一行是2,所以A在这些行中得到了NA。这里有一种在R基中使用ifelse的方法- df$A <- ifelse(df$B == 2, NA_real_, df$A) df$A <- ifelse(df$B == 2, NA_real_,

我想对A列、NA列的每一行进行赋值,其中B列为2:

资料

输出

          A   B
          NA   2 
          2   4
          NA  5
          NA   2
B的第一行和最后一行是2,所以A在这些行中得到了NA。

这里有一种在R基中使用ifelse的方法-

df$A <- ifelse(df$B == 2, NA_real_, df$A)
df$A <- ifelse(df$B == 2, NA_real_, df$A)
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