我需要在嵌套数据集中删除一级(不包括 NA)的因子变量。'drop_fixed_factors' 下面的函数在评估因子级别的数量时将 NA 视为一个级别。我该如何解决这个问题,以便对于 A==Y,B 有一个级别(A),而不是两个(A,NA)?
df <- tibble::tribble(
~A, ~B,
"X", "A",
"X", "B",
"Y", "A",
"Y", NA_character_,
"Z", "A",
"Z", "B",
"Z", NA_character_,
"K", "A",
"K", "A",
"L", NA_character_,
"L", NA_character_,
)
df$B <- as.factor(df$B)
dfgrp <- df %>%
group_by(A) %>%
nest()
drop_fixed_factors <- function(x) {
x %>% discard(~is.factor(.x) & length(unique(.x))<2)
}
dfgrp1 <- dfgrp %>%
mutate(data_1 = map(data, ~drop_fixed_factors(.x)))
dfgrp1
dfgrp1$data_1[[2]]
对于组 A == "Y",所需的输出不应具有变量 B。