如何取消summary()函数生成的(Other)类别以查看全部频次结果?
解决summary()输出中出现(Other)类别的问题
当你用summary()处理包含多水平因子的列时,R会自动将低频类别合并为(Other),这是默认行为。以下几种方法可以展开或去除该类别,查看完整结果:
调整summary的maxsum参数
直接在summary()中指定maxsum为足够大的数值(大于因子的总水平数),就能强制显示所有类别。比如:# 先查看因子水平总数(可选) nlevels(flights$carrier_code) nlevels(flights$carrier_name) # 设置maxsum为大于水平数的值,比如100(根据实际情况调整) summary(flights[, c("carrier_code", "carrier_name")], maxsum = 100)转换为字符型变量后统计
如果不需要保留因子类型,可将列转换为字符型,此时summary()会列出所有唯一值的频次:# 单列处理 summary(as.character(flights$carrier_code)) # 多列批量处理 summary(lapply(flights[, c("carrier_code", "carrier_name")], as.character))使用table()函数替代summary()
table()函数默认会显示所有类别的频次,不会合并低频项,适合需要完整频次表的场景:# 单变量频次表 table(flights$carrier_code) table(flights$carrier_name) # 交叉频次表(如果需要查看两个列的组合情况) table(flights$carrier_code, flights$carrier_name)
内容的提问来源于stack exchange,提问作者Tanman1414
相关产品推荐
相关产品推荐

