首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在R中合并三个分类/因子变量

在R中合并三个分类/因子变量
EN

Stack Overflow用户
提问于 2020-01-12 07:43:08
回答 1查看 69关注 0票数 0

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

代码语言:javascript
复制
x=c(1,2,1,NA,NA)
y=c(2,1,3,1,NA)
z=c(2,NA,3,2,NA)

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

代码语言:javascript
复制
  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的最高值。谢谢!

EN

回答 1

Stack Overflow用户

发布于 2020-01-12 07:49:17

我们可以使用pmax

代码语言:javascript
复制
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

因为我们需要所有的列,所以它可以简化为

代码语言:javascript
复制
tibble(x, y, z) %>%
    mutate(a = pmax(!!! ., na.rm = TRUE))

或在base R

代码语言:javascript
复制
cbind(x, y, z, a = pmax(x, y, z, na.rm = TRUE))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59699690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档