按因子基数划分数据帧?

问题描述 投票:0回答:1

我怀疑这将是重复的,但是我寻找答案的努力失败了。假设我有一个数据列,其中的列完全由整数或因子组成。这些列中有一些具有许多级别的因素,而有些则没有。假设我要选择部分数据或以其他方式子集数据,以便仅获得因子水平小于10的列。我怎样才能做到这一点?我首先想到的是做出一个特别令人讨厌的sapply命令,但我希望有更好的方法。

r dataframe r-factor
1个回答
0
投票

我们可以使用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]
© www.soinside.com 2019 - 2024. All rights reserved.