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

如何在R中制作含年龄维度的多层交叉表

多层交叉表实现方案

修改现有dplyr代码

只需在分组维度中加入Age字段,结合spread或新版pivot_wider即可实现三层维度的交叉表:

方法1:使用spread(兼容旧版tidyr)

NewMexico_DEM_xtab_ <- NewMexico_DEM_Voterfile %>%
  group_by(CountyName, Age, Sex) %>%  # 新增Age到分组维度
  tally() %>%
  spread(Sex, n, fill = 0)  # fill=0填充无数据的组合

方法2:使用pivot_wider(tidyr新版推荐,更灵活)

NewMexico_DEM_xtab_ <- NewMexico_DEM_Voterfile %>%
  group_by(CountyName, Age, Sex) %>%
  tally() %>%
  pivot_wider(names_from = Sex, values_from = n, values_fill = 0)

生成的表格会以CountyName和Age作为行维度,Sex作为列维度,展示每个维度组合的计数。

其他工具实现

如果需要传统多维列联表格式,可使用基础R的xtabs函数:

NewMexico_DEM_xtab_ <- xtabs(~ CountyName + Age + Sex, data = NewMexico_DEM_Voterfile)

若要转换为更易读的扁平表格,搭配ftable()即可:

ftable(NewMexico_DEM_xtab_)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 17:48:11