根据另一列的值将多列替换为缺失

Replace multiple columns to missing based on value of another column

我想要一种有效的方法来将许多列的值替换为 NA如果它们大于其他列的值。

例如:将 height1:height5 列中的所有值替换为 NA,如果这些值是 >height6

set.seed(1)

# example data
N <- 200
data <- data.frame(id = 1:N,
               height1 = rnorm(N,50:60),
               height2 = rnorm(N,60:70),
               height3 = rnorm(N,70:80),
               height4 = rnorm(N,80:90),
               height5 = rnorm(N,90:100),
               height6 = rnorm(N,60:110))

使用dplyr你可以做到

data %>% mutate_at(
   vars(height1:height5),
   ~ifelse(.x > data$height6, NA, .x)
   )