我遇到类似这样的问题:我想只选择低于“n”级别的列,我想我可以使用dplyr执行此操作,但我不知道如何。
以泰坦尼克号数据为例,其中str()
我有3个因子,2个等级,1个因子有4个等级。我的意思是只选择少于4级的列。
str(as.data.frame(Titanic) %>% mutate_if(is.character, factor))
任何想法?
提前致谢。
答案 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)