如何在R语言table函数输出中隐藏无观测值的变量水平?
解决方法:移除频数表中无观测值的类别
我来给你几个实用的解决办法,都是R里处理这类问题的常用操作:
- 方法一:直接过滤频数表结果
先生成完整的频数表,然后只保留计数大于0的部分,不用修改原数据,适合临时查看:
# 生成完整频数表 sex_table <- table(data$Sex) # 过滤掉计数为0的类别 sex_table[sex_table > 0]
- 方法二:移除因子的空水平
你的Sex变量应该是因子类型(这就是为什么table()会显示所有预设类别),可以用droplevels()去掉没有观测的水平:
# 临时处理,不改动原数据集 table(droplevels(data$Sex)) # 如果想永久修改原数据中的Sex变量(后续分析也不会出现空水平) data$Sex <- droplevels(data$Sex) table(data$Sex)
- 方法三:用tidyverse工具生成过滤后的频数表
如果你习惯使用dplyr这类tidyverse包,可以得到数据框格式的结果,更适合后续的整洁分析:
library(dplyr) data %>% count(Sex) %>% filter(n > 0)
内容的提问来源于stack exchange,提问作者Paromita Shithi
相关产品推荐
相关产品推荐

