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

标签 r dplyr

我有一个类似的问题:我想只选择低于“n”级的列,我想我可以使用 dplyr 来做到这一点,但我不知道如何。

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

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

有什么想法吗?

提前致谢。

最佳答案

只需传递一个函数给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)

关于r - 如何使用 dplyr 仅选择少于 n 级的列(type=factor)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50357011/

相关文章:

r - 根据空间拆分R中的列

r - 识别 r 中的重复

r - dplyr 方式对共享相同 "levels"的多个变量进行制表(汇总)

r - 根据存在的数据帧行分配分组变量R

r - 使用 R 管道时,没有适用于 'tbl_vars' 应用于类 "c(' fseq', 'function' ) 的对象的方法

R 将矩阵转换为列表

R根据data.frame中的列创建邻接矩阵

r - 无法强制列出包含重复项的事务::Win7 SP1 64::R v3.02

r - "If (FALSE)"没有明确说明条件

r - 如果变量与数据框的列具有相同的名称,则 dplyr 过滤器不起作用