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

如何在R中按母亲年龄统计各年龄段子女数量?

需求说明

现有一份育龄及以上女性数据集,每条数据对应一位女性,包含id、母亲年龄AGE字段,以及parity1至parity4字段(分别代表该女性第1至第4胎孩子的年龄)。需按母亲年龄统计各年龄段子女的总数,生成汇总表格:

  • 每行对应一个母亲年龄
  • 每列对应一个子女年龄
  • 单元格数值为对应母亲年龄下该年龄段子女的数量

示例表格如下:

母亲年龄0123
381
39
401
4111
42
43111
441
451
461
471
示例数据集
library("tidyverse")

sample_df <- tibble(
    id = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
    AGE = c(38, 39, 40, 41, 42, 43, 44, 45, 46, 47),
    parity1 = c(15, 14, 13, 12, 9, 8, 14, 13, 3, 7),
    parity2 = c(13, 9, 9, 10, 7, 4, 13, 11, NA, 5),
    parity3 = c(10, 7, 3, 3, 6, 2, 9, 15, NA, 2),
    parity4 = c( 0, NA, NA, 1, NA, 0, 0 , 1, NA, NA),
)
R语言解决方案

使用tidyverse工具链实现需求,核心通过格式转换完成分组统计:

result <- sample_df %>%
  # 宽转长,合并所有子女年龄列
  pivot_longer(
    cols = starts_with("parity"), 
    names_to = "child_order", 
    values_to = "child_age"
  ) %>%
  # 过滤无子女年龄的记录
  filter(!is.na(child_age)) %>%
  # 按母亲年龄、子女年龄统计数量
  count(AGE, child_age, name = "count") %>%
  # 长转宽,缺失值填充为空字符串
  pivot_wider(
    names_from = child_age, 
    values_from = count, 
    values_fill = ""
  ) %>%
  # 重命名列匹配示例格式
  rename(`母亲年龄` = AGE) %>%
  # 按母亲年龄排序
  arrange(`母亲年龄`)

# 输出结果
print(result)

结果说明

运行代码后生成的result数据框即为符合要求的汇总表格,空单元格表示对应母亲年龄下无该年龄段的子女。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 11:27:35