2017-09-01 72 views
0

假设排除数据集中观察到有:选择数据,并通过dplyr

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

我想创建以下文件:

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

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

有没有办法在dplyr中做到这一点?

+1

'P最高(X,Y,na.rm = TRUE)'。 – lmo

+0

以及'dplyr':data.frame(x = x,y = y)%> mutate(z = pmax(x,y,na.rm = TRUE)) –

回答

1

我们可以在dplyr

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

使用pmax或者另一种选择是reduce

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