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

如何在R中重构秘鲁人口普查数据框以生成指定汇总表?

重构秘鲁人口普查数据为指定汇总表的R实现方法

前置准备

先确保安装并加载数据处理常用的dplyr和tidyr包:

# 首次使用需安装
install.packages(c("dplyr", "tidyr"))

# 加载包
library(dplyr)
library(tidyr)

数据重构步骤

假设你的原始数据框df包含字段:District(地区)、Occupation_category(职业类别)、Gender(性别标识,如"Female"/"Male")、Count(统计人数)。请根据实际数据调整以下代码中的类别标识和列名:

summary_table <- df %>%
  # 1. 按地区分组,计算各地区总从业者数
  group_by(District) %>%
  mutate(Total_workers = sum(Count)) %>%
  # 2. 筛选科技智力类从业者数据(替换为你数据中对应的职业类别值)
  filter(Occupation_category %in% c("Science", "Technology", "Intellectual")) %>%
  # 3. 计算各地区科技智力从业者总数
  mutate(total_tech_intel = sum(Count)) %>%
  # 4. 筛选女性科技智力从业者数据(替换为你数据中女性的标识)
  filter(Gender == "Female") %>%
  # 5. 计算两个占比指标
  mutate(
    `女性科技智力从业者占比` = Count / total_tech_intel,
    `科技智力从业者占比` = total_tech_intel / Total_workers
  ) %>%
  # 6. 保留目标字段并去重(每个地区仅留一行汇总数据)
  select(District, `女性科技智力从业者占比`, `科技智力从业者占比`, Total_workers) %>%
  distinct() %>%
  ungroup()

补充说明

  • 若需将占比转为百分比格式,可修改mutate部分:
    mutate(
      `女性科技智力从业者占比` = paste0(round(Count / total_tech_intel * 100, 2), "%"),
      `科技智力从业者占比` = paste0(round(total_tech_intel / Total_workers * 100, 2), "%")
    )
    
  • 若要保留无科技智力从业者的地区并填充0,可在开头添加complete补全缺失组合:
    df %>%
      complete(District, Occupation_category, Gender, fill = list(Count = 0)) %>%
      # 后续步骤同上
    

内容的提问来源于stack exchange,提问作者José Carlos Rojas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 14:30:15