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

R语言如何实现按年份分组统计各等级的样本计数

按年份拆分等级计数的R实现方法

适配你现有代码的dplyr修改方案

你当前写的data %>% count(Grade)是对全表做无分组的等级计数,只要在count()函数的参数列表里加上年份列,就会自动按「年份+等级」的组合维度拆分计算样本数,不需要额外手动添加分组逻辑:

# 生成长表格式的逐年份、逐等级计数结果
year_grade_count <- data %>% count(year, Grade)

因为你已经提前将Grade设置为因子类型,后续转换矩阵格式时,所有预设的等级水平都会被完整保留,不会因为某一年没有对应等级的样本就丢失维度。
如果需要转换成「行代表年份、列代表等级、单元格为对应样本数」的矩阵宽表格式,搭配tidyr的pivot_wider即可快速实现:

library(tidyr)
year_grade_matrix <- year_grade_count %>% 
  pivot_wider(names_from = Grade, values_from = n, values_fill = 0)

其中values_fill = 0的作用是将无样本的组合填充为0,避免出现NA值。

基础R快速实现方案

如果不想依赖tidyverse系列包,直接用基础R自带的table()函数可以一步生成矩阵格式的计数结果:

year_grade_matrix <- table(data$year, data$Grade)

该方法会自动识别Grade的因子水平,完整保留所有等级维度,无需额外处理缺失计数的情况。

直观可视化搭配

拿到矩阵格式的计数结果后,可以根据需求做两类展示:

  • 生成整洁可导出的计数表格:使用knitr::kable(year_grade_matrix)即可输出规范的表格,方便嵌入报告
  • 生成矩阵热图直观展示分布:使用heatmap(year_grade_matrix, scale = "none")可以快速渲染热图,不同年份各等级的样本数量差异可以通过颜色深浅直接体现

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.28 02:24:08