【问题标题】:Replace multiple columns to missing based on value of another column根据另一列的值将多列替换为缺失
【发布时间】:2019-05-12 15:39:10
【问题描述】:

如果许多列的值大于不同列的值,我想要一种有效的方法将许多列的值替换为NA

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

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))

【问题讨论】:

  • 您的问题不清楚。如果第 1 行看起来像 [1,55,65,75,85,95,90] 那么height5 大于height6,那么你想用 NA 替换 height5 中的所有值,还是只替换值在那一行?你想用NA替换行中的所有值(如height1, height2, ..., height5)吗?如有需要,请举例说明更具体。
  • 我想只替换大于 height6 的特定列的行的值。即对于第 1 行, height5 的值将是 NA

标签: r dplyr data-manipulation missing-data


【解决方案1】:

使用dplyr 你可以做到

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多