R 选择具有最少NA值的列
我正在使用一个生成两个输出列的数据帧。一列始终比另一列具有更多NA值,但不是以任何可预测的方式。我的问题是,如何使用dplyr选择NA值最少的列。我正在考虑使用which.min来决定,但不确定如何将其组合在一起。请注意,这两列都包含na值,我想选择这些值中最少的一列。您可以使用R 选择具有最少NA值的列,r,select,dplyr,na,R,Select,Dplyr,Na,我正在使用一个生成两个输出列的数据帧。一列始终比另一列具有更多NA值,但不是以任何可预测的方式。我的问题是,如何使用dplyr选择NA值最少的列。我正在考虑使用which.min来决定,但不确定如何将其组合在一起。请注意,这两列都包含na值,我想选择这些值中最少的一列。您可以使用dplyr和purr执行此操作 在which.min中,首先使用map(可以是data.frame中的任意多个列。keep部分仅返回实际具有NA的列。which.min返回命名向量,我们取其名称并将其提供给dplyr的s
dplyr
和purr
执行此操作
在which.min
中,首先使用map
(可以是data.frame中的任意多个列。keep
部分仅返回实际具有NA的列。which.min
返回命名向量,我们取其名称并将其提供给dplyr
的select
函数
我已经略述了代码,这样您就可以很容易地看到哪些部分属于哪里
library(purrr)
library(dplyr)
df %>% select(names(which.min(df %>%
map(function(x) sum(is.na(x))) %>%
keep(~ .x > 0)
)
)
)
库(dplyr)
df%
总结所有(funs(sum(is.na)())#na计数
#>#A tible:1 x 2
#>a b
#>
#> 1 4 8
df%>%#答案
选择_if(funs)(哪一个.min(sum(is.na)())))
#>#tibble:24 x 1
#>a
#>
#>1 NA
#> 2 1
#> 3 2
#> 4 3
#> 5 4
#> 6 5
#>7 NA
#> 8 1
#> 9 2
#> 10 3
#>#…还有14行
由(v0.2.0)于2018年5月25日创建