我怀疑这将是重复的,但是我寻找答案的努力失败了。假设我有一个数据列,其中的列完全由整数或因子组成。这些列中有一些具有许多级别的因素,而有些则没有。假设我要选择部分数据或以其他方式子集数据,以便仅获得因子水平小于10的列。我怎样才能做到这一点?我首先想到的是做出一个特别令人讨厌的sapply
命令,但我希望有更好的方法。
我们可以使用select_if
library(dplyr)
df1 %>%
select_if(~ is.factor(.) && nlevels(.) < 10)
或使用sapply
i1 <- sapply(df1, function(x) is.factor(x) && nlevels(x) < 10)
df1[i1]