首页 > 解决方案 > 所有列上的 fct_lump 和 fct_count 是因子

问题描述

我是 R 的新手,有点坚持寻找一种更优雅的方式来回答我的在线课程中的问题。

我有一个包含 69 列的数据集,其中一些是因子。1. 我想显示因子水平出现次数少于 30 的所有变量 2. 我想集中所有因素,以便保留 100 个最常见的因素,其他因素集中在一起

我想我可能有针对单个列的解决方案,但我的问题是我无法将它作为一个函数组合在一起。我想我可以使用 map 函数,但这给了我一个列表作为输出。我想把它作为一个数据集。

到目前为止我做了什么:

1.

> rawdata10<-rawdata9 %>% map(~ countFactors(.))  lapply(rawdata10,  FUN = '[', 2)

有了它,我可以访问列表的第二列,但是我在选择所有较小的变量时遇到了问题

rawdata10[which(sapply(rawdata10, '[[', 2) < 100)]

它说 > (list) Objekt kann nicht nach 'double' umgewandelt werden

  1. 我用 map() 函数尝试了第二个。但是这里有一个列表,而不是我以前喜欢的数据集,我不知道如何使用它。是否有可能将其转换回数据集,或者甚至不列出它?

块因子 <- 函数(列){

if(is.factor(col)){
    fct_lump(col,n=100)

  }else{
    NULL
  }
}
rawdata10<-rawdata9 %>% map(~ lumpFactors(.)) 

非常感谢你的帮助!

标签: rlistselect

解决方案


推荐阅读