R 删除不包括NAs的单因素级别的变量

R 删除不包括NAs的单因素级别的变量,r,dplyr,tidyverse,purrr,forcats,R,Dplyr,Tidyverse,Purrr,Forcats,我需要在嵌套数据集中删除一个级别(不包括NAs)的因子变量。“下降固定因素”下面的函数将NA视为一个水平,同时评估因素水平的数量。请帮助我解决这个问题,以便对于A==Y,B有一个级别(A),而不是两个级别(A,NA) df您可以手动删除unique中的NA值: drop_fixed_factors <- function(x) { x %>% discard(~is.factor(.x) & length(unique(na.omit(.x)))<2) }

我需要在嵌套数据集中删除一个级别(不包括NAs)的因子变量。“下降固定因素”下面的函数将NA视为一个水平,同时评估因素水平的数量。请帮助我解决这个问题,以便对于A==Y,B有一个级别(A),而不是两个级别(A,NA)


df您可以手动删除
unique
中的
NA
值:

drop_fixed_factors <- function(x) {
     x %>% discard(~is.factor(.x) & length(unique(na.omit(.x)))<2)
}
两个选项对组“Y”均不返回任何内容

dfgrp1
#一个tibble:5x3
A数据单元1
1倍
2岁
3 Z
4K
5升

您可以手动删除
unique
中的
NA
值:

drop_fixed_factors <- function(x) {
     x %>% discard(~is.factor(.x) & length(unique(na.omit(.x)))<2)
}
两个选项对组“Y”均不返回任何内容

dfgrp1
#一个tibble:5x3
A数据单元1
1倍
2岁
3 Z
4K
5升
drop_fixed_factors <- function(x) {
     x %>% discard(~is.factor(.x) & n_distinct(.x, na.rm = TRUE)<2)
}
dfgrp1
# A tibble: 5 x 3
  A     data             data_1          
  <chr> <list>           <list>          
1 X     <tibble [2 x 1]> <tibble [2 x 1]>
2 Y     <tibble [2 x 1]> <tibble [2 x 0]>
3 Z     <tibble [3 x 1]> <tibble [3 x 1]>
4 K     <tibble [2 x 1]> <tibble [2 x 0]>
5 L     <tibble [2 x 1]> <tibble [2 x 0]>