在多个列上使用带is.na()的any()或all()

时间:2018-11-14 19:09:30

标签: r

我想从数据集中删除全部为NA的行(AKA将行与任何非NA保持在一起)以获取列列表。如何更新此代码,以便将truex作为向量提供?这将使我能够灵活地添加和删除列以进行检查。

y

我正在尝试编写类似library(dplyr) ds <- tibble( id = c(1:4), x = c(NA, 1, NA, 4), y = c(NA, NA , 3, 4) ) ds %>% rowwise() %>% filter( any( !is.na(x), !is.na(y) ) ) %>% ungroup() 的内容,但不确定如何为any(!is.na(c(x,y)))提供多个参数。

1 个答案:

答案 0 :(得分:2)

我们可以将filter_atany_vars一起使用

ds %>% 
   filter_at(vars(x:y), any_vars(!is.na(.)))
# A tibble: 3 x 3
#     id     x     y
#  <int> <dbl> <dbl>
#1     2     1    NA
#2     3    NA     3
#3     4     4     4