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

补全面板数据缺失行:扩展县行政长官年度任职记录

扩展县行政长官年度面板数据框

你需要把仅记录就职年份的县行政长官数据,扩展为2000-2004年每个县每年对应的长官信息,填补任期内的空缺年份。以下是具体实现方法:

原始数据

df <- data.frame(
  year = c(2000, 2001, 2003, 2000, 2002, 2004),
  executive.name = c("Johnson", "Smith", "Alleghany", "Roberts", "Clarke", "Tollson"),
  party = c("PartyRed", "PartyYellow", "PartyGreen", "PartyYellow", "PartyOrange", "PartyRed"),
  district = rep(c(1001, 1002), each = 3)
)

目标数据

df.neat <- data.frame(
  year = c(2000, 2001, 2002, 2003, 2004, 2000, 2001, 2002, 2003, 2004),
  executive.name = c("Johnson", "Smith", "Smith", "Alleghany", "Alleghany", "Roberts", "Roberts", "Clarke", "Clarke", "Tollson"),
  party = c("PartyRed", "PartyYellow", "PartyYellow", "PartyGreen", "PartyGreen", "PartyYellow", "PartyYellow", "PartyOrange", "PartyOrange", "PartyRed"),
  district = rep(c(1001, 1002), each = 5)
)

解决方案(使用tidyverse工具)

通过生成完整年份序列+向下填充任期信息的方式实现:

library(tidyverse)

df_expanded <- df %>%
  # 按县分组
  group_by(district) %>%
  # 生成2000-2004年的完整年份序列
  complete(year = 2000:2004) %>%
  # 向下填充行政长官和党派信息(任期内沿用前一任信息直到新长官就职)
  fill(executive.name, party, .direction = "down") %>%
  # 取消分组
  ungroup() %>%
  # 按县和年份排序,匹配目标数据顺序
  arrange(district, year)

验证结果

运行代码后,df_expanded的结构和内容与df.neat完全一致,可通过all.equal(df_expanded, df.neat)验证(返回TRUE即匹配成功)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 18:05:07