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

在R中按id_municipio和ano分组累加生成面板数据的问题

问题原因

你的代码错误在于分组时同时包含了ano:每个id_municipio与ano的组合都是唯一的单行数据,分组后每组仅一条记录,cumsum无法产生累加效果,最终结果自然和原数据集一致。

正确代码

只需按id_municipio单独分组,先按年份排序保证时间顺序,再对目标列执行累加操作:

teste_3 <- teste_2 %>%
    group_by(id_municipio) %>%
    arrange(ano, .by_group = TRUE) %>%
    mutate(
        across(c(CLARO, OI, TIM, VIVO), cumsum)
    ) %>%
    ungroup() # 可选,根据后续操作需求决定是否取消分组

代码说明

  • group_by(id_municipio):仅按城市ID分组,确保同一城市的所有年份数据在同一组内进行累加计算
  • arrange(ano, .by_group = TRUE):按年份排序,.by_group参数保证分组内的排序逻辑生效
  • across(...):批量处理多列,替代逐个列写cumsum的冗余写法,效果完全一致
  • ungroup():如果后续无需分组操作,建议取消分组,避免对后续代码造成意外影响

运行后即可得到你需要的累加面板数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 19:25:47