【问题标题】:Merging three categorical / factor variables in R在 R 中合并三个分类/因子变量
【发布时间】:2020-01-11 23:43:07
【问题描述】:

对于有关气候变化行动的问题,我有三个分类变量。人们可以采取三个级别的回应:“不,我不会那样做”、“是的,我愿意那样做”和“嘿,我已经这样做了,伙计!” .我想合并三个响应,这样我就只有一个气候变化行动变量。我已将响应转换为数字。所以我有:

x=c(1,2,1,NA,NA)
y=c(2,1,3,1,NA)
z=c(2,NA,3,2,NA)

我想要创建的是第三个变量,'a'

  x  y  z  a
  1  2  2  2
  2  1 NA  2
  1  3  3  3
 NA  1  2  2
 NA NA NA NA

'a' 将取 x、y 或 z 的对应值中的最大值。谢谢!

【问题讨论】:

    标签: r variables merge categorical-data


    【解决方案1】:

    我们可以使用pmax

    library(dplyr)
    tibble(x, y, z) %>%
         mutate(a = pmax(x, y, z, na.rm = TRUE))
    # A tibble: 5 x 4
    #      x     y     z     a
    #  <dbl> <dbl> <dbl> <dbl>
    #1     1     2     2     2
    #2     2     1    NA     2
    #3     1     3     3     3
    #4    NA     1     2     2
    #5    NA    NA    NA    NA
    

    由于我们需要所有的列,所以可以简化为

    tibble(x, y, z) %>%
        mutate(a = pmax(!!! ., na.rm = TRUE))
    

    或在base R

    cbind(x, y, z, a = pmax(x, y, z, na.rm = TRUE))
    

    【讨论】:

      猜你喜欢
      • 2015-07-04
      • 1970-01-01
      • 2013-09-08
      • 1970-01-01
      • 2018-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多