对于一个关于气候变化行动的问题,我有三个绝对变量。人们可以采取三种级别的反应:“不,我不会这么做”,“是的,我愿意这么做”,以及“嘿,我已经在这么做了,伙计!”。我想合并这三个响应,这样我就只有一个气候变化行动变量。我已经将响应转换为数字。所以我有:
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的最高值。谢谢!
发布于 2020-01-12 07:49:17
我们可以使用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))https://stackoverflow.com/questions/59699690
复制相似问题