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

如何按组从首次出现年份开始逐年重复R语言数据框数据?

R语言数据扩展解决方案

问题出在分组维度不对——你之前只按org分组,导致生成了全量年份序列;正确的做法是按**org-country组合**分组,这样才能基于每个组合的首次出现年份,生成到2021年的连续年份。

修正后的代码

library(dplyr)
library(tidyr)

# 假设你的原始数据框名为df
df_expanded <- df %>%
  # 按org+country组合分组,标记每个组合的首次出现年份
  group_by(org, country) %>%
  mutate(first_year = min(year)) %>%
  ungroup() %>%
  # 针对每个组合,生成从首次年份到2021的连续年份
  group_by(org, country, first_year) %>%
  expand(year = first_year:2021) %>%
  ungroup() %>%
  # 清理辅助列,整理成目标格式
  select(org, year, country)

关键修正点

  • 分组逻辑调整:从仅按org分组,改为org+country联合分组,确保每个组合的起始年份独立计算
  • 精准生成年份序列:用first_year:2021直接生成该组合专属的年份区间,避免full_seq拉取全量年份的问题
  • 辅助列清理:最后移除临时的first_year列,还原你需要的三列结构

用你提供的测试数据运行这段代码,就能得到每个org-country从首次出现年份开始,逐年填充至2021年的结果。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 11:02:07