【问题标题】:Replace values in multiple columns based on a second set of columns根据第二组列替换多列中的值
【发布时间】:2023-01-26 22:10:21
【问题描述】:

我在 R 数据帧(X 和 Y)中有两组“二进制变量”。 X 变量包含 Y 中的值是否有效 (1) 或无效 (0) 的信息。我想使用 X 变量作为掩码,并将 Y 变量的所有无效单元格替换为 NA,其中对应的 X 变量为 0。

简化示例:

input <- tibble(X1 = c(1,1,0,1), X2 = c(1,1,1,0), X3 = c(0,0,0,1), Y1 = c(1,0,1,1), Y2 = c(1,1,0,0), Y3 = c(0,0,0,0))
output <- tibble(Z1 = c(1,0,NA,1), Z2 = c(1,1,0,NA), Z3 = c(NA,NA,NA,0))

【问题讨论】:

    标签: r


    【解决方案1】:

    这是一个基本的 R 解决方案:

    output <- input[, 4:6]
    output[input[, 1:3] == 0] <- NA
    names(output) <- paste0("Z", 1:3)
    

    结果:

    # A tibble: 4 × 3
         Z1    Z2    Z3
      <dbl> <dbl> <dbl>
    1     1     1    NA
    2     0     1    NA
    3    NA     0    NA
    4     1    NA     0
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-04
      • 2014-03-14
      • 1970-01-01
      • 2020-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多