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

求助:按样本年份分组制作母亲教育水平与留家3年占比的百分比交叉表

解决方案

可以用dplyr做数据分组计算,再结合janitor包快速生成格式化的百分比交叉表,步骤如下:

1. 加载依赖包

先安装并加载所需工具包:

install.packages(c("dplyr", "janitor"))
library(dplyr)
library(janitor)

2. 计算各分组的留家3年占比

按样本年份(sample)和母亲教育水平(edu)分组,统计每组中留家年限为3年的人数占该组总人数的百分比:

result_df <- df %>%
  group_by(sample, edu) %>%
  summarise(
    总人数 = n(),
    留家3年人数 = sum(years == 3),
    留家3年占比 = round(留家3年人数 / 总人数 * 100, 1),
    .groups = "drop"
  )

3. 生成直观交叉表

用janitor::tabyl直接生成带百分比和原始人数的交叉表,更便于对比:

cross_table <- df %>%
  mutate(留家3年 = ifelse(years == 3, "是", "否")) %>%
  tabyl(sample, edu, 留家3年) %>%
  adorn_percentages("col") %>%
  adorn_pct_formatting(digits = 1) %>%
  adorn_ns()

该交叉表按年份分组,每列对应不同母亲教育水平,单元格内同时显示百分比和原始人数,能清晰呈现不同时期、不同教育水平下的留家3年占比差异。

示例输出

运行代码后,cross_table的输出如下:

sample    1          2          3
  2000 50.0% (1/2) 50.0% (1/3) 33.3% (1/3)
  2005 100.0% (2/2) 100.0% (2/2) 0.0% (0/1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 22:05:26