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

如何在R语言中最优解析人口调查数据字段?

宽格式CPS人口调查数据转长格式并解析字段

需求说明

原始数据为当前人口调查(CPS)的宽格式子集,列名包含种族、性别、年龄组(可选)及劳动力指标类型,需转换为长格式并拆分出维度字段(种族、性别、年龄),匹配目标格式。

解决代码

使用tidyverse工具包完成数据重塑与字段解析:

library(tidyverse)

test_long <- test2 %>%
  # 保留标识列,将所有指标列转为长格式
  pivot_longer(
    cols = -c(stfips, areatype, periodyear, period),
    names_to = "variable",
    values_to = "value"
  ) %>%
  # 拆分列名:分离维度信息与指标类型
  separate(variable, into = c("dimensions", "indicator"), sep = "(?=laborforce|unemp|unemprate)") %>%
  # 从维度字符串提取种族、性别、年龄组
  mutate(
    race = str_sub(dimensions, 1, 1),
    gender = str_sub(dimensions, 2, 2),
    age = ifelse(str_length(dimensions) > 2, str_sub(dimensions, 3, -1), "all")
  ) %>%
  # 将指标类型转回宽列,匹配目标字段
  pivot_wider(
    names_from = indicator,
    values_from = value
  ) %>%
  # 调整列顺序并移除无完整指标的行
  select(stfips, areatype, periodyear, period, race, gender, age, laborforce, unemp, unemprate) %>%
  drop_na(laborforce, unemp, unemprate)

代码解释

  1. pivot_longer:把宽格式的指标列统一转为variable-value结构,保留stfips等4个标识列。
  2. separate:利用正向预查正则规则,拆分出列名里的维度信息(种族+性别+年龄)和指标类型(laborforce/unemp等)。
  3. mutate:从维度字符串中提取首字符作为种族、第二个字符作为性别;若字符串长度超过2,剩余部分为年龄组,否则标记为"all"(全年龄)。
  4. pivot_wider:把拆分后的指标类型转回宽列,得到laborforce、unemp、unemprate三个数值列。
  5. select+drop_na:调整列顺序匹配目标格式,移除缺少完整指标的行(比如仅包含balaborforce的行)。

部分结果展示

> head(test_long, 12)
   stfips areatype periodyear period race gender  age laborforce unemp unemprate
1      32        1       2021      1    x      a  all     1210.9  55.7       2.3
2      32        1       2021      2    x      a  all     1215.3  55.2       2.5
3      32        1       2021      3    x      a  all     1200.6  65.2       2.7
4      32        1       2021      4    x      a  all     1201.6 321.2       2.9
5      32        1       2021      5    x      a  all     1202.8  77.8       3.2
6      32        1       2021      6    x      a  all     1209.3  88.5       6.5
7      32        1       2021      7    x      a  all     1199.2  92.4       6.0
8      32        1       2021      8    x      a  all     1198.9 102.6      12.5
9      32        1       2021      1    w      a  all     1000.0  50.2       3.4
10     32        1       2021      2    w      a  all      999.2  49.5       3.6
11     32        1       2021      3    w      a  all     1000.5  51.6       3.8
12     32        1       2021      4    w      a  all     1001.5 251.2       4.0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 06:48:25