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

R语言中按地区分组后按自定义年龄区间统计的实现方法

R语言实现地区+年龄分段交叉统计的方案

你可以通过以下几种常用方式实现需求:

方法1:基础R自带函数实现(无需加载第三方包)

直接调用table()函数即可快速生成交叉统计结果:

# 生成交叉统计 contingency table
count_table <- table(MyData$Area, MyData$Age)
# 若需要转为数据框格式做后续处理,可运行以下代码
count_df <- as.data.frame.matrix(count_table)

运行后得到的count_df结构和你示例的表格完全一致,行对应地区,列对应年龄区间,值为对应分组的人数。

方法2:tidyverse生态实现(适配后续可视化、数据处理流程)

如果后续还要基于统计结果作图或者做其他数据处理,更推荐用dplyr+tidyr的 pipeline 实现:

library(dplyr)
library(tidyr)

count_df <- MyData %>%
  # 按地区、年龄区间分组
  group_by(Area, Age) %>%
  # 统计每组人数
  summarise(person_count = n(), .groups = "drop") %>%
  # 转为宽表结构,匹配你需要的输出格式
  pivot_wider(names_from = Age, values_from = person_count, values_fill = 0)

配套可视化代码参考

如果需要直接生成分组统计图表,可以接ggplot2实现:

library(ggplot2)

MyData %>%
  group_by(Area, Age) %>%
  summarise(person_count = n(), .groups = "drop") %>%
  ggplot(aes(x = Age, y = person_count, fill = Area, label = person_count)) +
  geom_col(position = position_dodge(width = 0.9)) +
  geom_text(position = position_dodge(width = 0.9), vjust = -0.3) +
  labs(x = "年龄区间", y = "人数", fill = "地区")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 18:36:05