You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中创建带分组标签的年龄频数直方图?

解决R语言中分类变量的频数可视化问题

为什么hist(Age_Cat)会报错?

hist()函数是为连续数值型变量设计的,用于展示数据的区间分布频率,无法直接处理因子(分类)变量,因此运行时会抛出错误。对于分类变量的频数展示,应该使用**条形图(barplot)**更合适。

优化你的年龄组转换代码

你嵌套多层ifelse的写法可以简化,直接用factor()函数的levels和labels参数映射编码与标签,更简洁易维护:

# 将Age_Cd转换为带标签的因子变量
Screen_Data$Age_Cat <- factor(
  Screen_Data$Age_Cd,
  levels = 1:6,  # 对应原始编码1-6
  labels = c("18y-24y", "25y-34y", "35y-44y", 
             "45y-54y", "55y-64y", "65+y")  # 对应每个编码的显示标签
)

方法1:用基础R绘制条形图

先通过table()统计各年龄组的频数,再用barplot()可视化:

# 统计各年龄组频数
age_freq <- table(Screen_Data$Age_Cat)

# 绘制条形图
barplot(
  age_freq,
  xlab = "年龄组",    # X轴标签
  ylab = "频数",      # Y轴标签
  main = "各年龄组频数分布",  # 图表标题
  col = "lightblue"   # 设置条形颜色
)

方法2:用ggplot2绘制更美观的条形图

如果需要更灵活的样式调整,可以使用ggplot2包(新手友好,样式更现代):

# 首次使用时先安装包
# install.packages("ggplot2")
library(ggplot2)

# 绘制频数条形图
ggplot(Screen_Data, aes(x = Age_Cat)) +
  geom_bar(fill = "lightblue") +  # 绘制条形并设置填充色
  labs(
    x = "年龄组",
    y = "频数",
    title = "各年龄组频数分布"
  ) +
  theme_minimal()  # 使用简洁的主题样式

内容的提问来源于stack exchange,提问作者Emily Warner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 00:47:10