如何使用dplyr仅选择少于n个级别的列(type = factor)?

时间:2018-05-15 18:28:54

标签: r dplyr

我遇到类似这样的问题:我想只选择低于“n”级别的列,我想我可以使用dplyr执行此操作,但我不知道如何。

以泰坦尼克号数据为例,其中str()我有3个因子,2个等级,1个因子有4个等级。我的意思是只选择少于4级的列。

str(as.data.frame(Titanic) %>% mutate_if(is.character, factor))

任何想法?

提前致谢。

1 个答案:

答案 0 :(得分:6)

将函数传递给select_if,与mutate_if非常相似 - 请参阅?nlevels

Titanic %>%
  as_data_frame() %>%
  mutate_if(is.character, factor) %>%
  select_if(~ nlevels(.) < 4)

请注意,您也可以将其写为:select_if(function(x) nlevels(x) < 4)