R中summary(data.frame)无法显示字符型变量详情的解决方法求助
解决R语言summary()无法统计字符型变量频数的问题
核心原因
summary()函数对数据框中的字符型变量,默认只会输出变量的长度、类型和存储模式,不会统计各分类值的频数;但如果是因子(factor)类型的变量,summary()会自动输出每个分类的出现次数。
解决方法
方法1:将字符型变量转换为因子类型
这是最直接的原生解决方案:
- 单个变量转换:
# 假设性别列名为gender b$gender <- factor(b$gender) summary(b) - 批量转换数据框中所有字符型变量:
基础R实现:
用dplyr包简化(需先执行char_cols <- sapply(b, is.character) b[char_cols] <- lapply(b[char_cols], factor) summary(b)install.packages("dplyr")安装):library(dplyr) b <- b %>% mutate_if(is.character, factor) summary(b)
方法2:使用专门工具包生成更全面的统计
如果不想转换变量类型,可以用第三方包直接统计字符型变量的频数:
- 用
table()函数单独统计目标字符列:table(b$gender) - 用
skimr包生成全数据框的详细统计(含字符型变量频数):install.packages("skimr") library(skimr) skim(b) - 用
psych包的describe()函数(支持分类变量统计):install.packages("psych") library(psych) describe(b, fast=TRUE)
内容的提问来源于stack exchange,提问作者Genetics University
相关产品推荐
相关产品推荐

