R fct_lump和fct_计算所有作为因素的列
我是R方面的新手,在我的在线课程中,我一直在寻找一种更优雅的方式来回答这个问题 我有一个69列的数据集,其中一些是因子。 1.我想显示因子级别少于30次的所有变量 2.我想把所有的因素综合在一起,这样剩下100个最常见的因素,其他的因素都被综合在一起 我想我可能有一个解决方案,只针对一个专栏,但我的问题是我无法将它作为一个函数组合起来。我想我可以使用map函数,但这会给我一个列表作为输出。我想让它成为一个数据集 到目前为止我所做的: 一,R fct_lump和fct_计算所有作为因素的列,r,list,select,R,List,Select,我是R方面的新手,在我的在线课程中,我一直在寻找一种更优雅的方式来回答这个问题 我有一个69列的数据集,其中一些是因子。 1.我想显示因子级别少于30次的所有变量 2.我想把所有的因素综合在一起,这样剩下100个最常见的因素,其他的因素都被综合在一起 我想我可能有一个解决方案,只针对一个专栏,但我的问题是我无法将它作为一个函数组合起来。我想我可以使用map函数,但这会给我一个列表作为输出。我想让它成为一个数据集 到目前为止我所做的: 一, >rawdata10%map(~countFactors
>rawdata10%map(~countFactors(.))lappy(rawdata10,FUN='[',2)
这样我就可以访问列表的第二列,但是我在选择所有较小的变量时遇到了问题
rawdata10[which(sapply(rawdata10, '[[', 2) < 100)]
rawdata10[其中(sapply(rawdata10,[[],2)<100)]
上面写着>(列表)不可能是“双重”的
lumpFactors请修复打字错误(occurance代表occurrence,facotr代表factor,等等),并将德语句子翻译成英语。使用Google translate很容易,但我怀疑你知道足够多的英语,不需要任何帮助就可以做到这一点。这似乎意味着“(list)object无法转换为“double”但不必弄清楚这一点很好。我们欢迎非英语使用者,但这是一个英语网站。如果
is.factor
与is.factor一起使用,您可以使用mutate\u作为谓词
rawdata10[which(sapply(rawdata10, '[[', 2) < 100)]
if(is.factor(col)){
fct_lump(col,n=100)
}else{
NULL
}
}
rawdata10<-rawdata9 %>% map(~ lumpFactors(.))