通过dplyr选择数据并从数据集中排除观察结果

时间:2017-09-01 15:11:17

标签: r dplyr

假设有:

x<-c(1,2,3,1)
y<-c(2,NA,1,1)

我想创建以下内容:

z<-c(2,2,3,1)

即选择较大的值,不包括NA先验,如果x和y相等,则保持相同的值。

有没有办法在dplyr中执行此操作?

1 个答案:

答案 0 :(得分:1)

我们可以在pmax

中使用dplyr
library(dplyr)
tibble(x, y) %>%
    transmute(xy = pmax(x, y, na.rm = TRUE)) %>% 
    pull(xy)
#[1] 2 2 3 1

或另一个选项是reduce

library(purrr)
list(x, y) %>%
     reduce(pmax, na.rm = TRUE)
#[1] 2 2 3 1