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

R语言实现不同基期多国月度价格指数的分组计算

问题原因

原有代码分组逻辑错误:group_by(Country,Date)会将「国家+单一日期」作为独立分组,每组仅包含1行观测,因此pmin(Date)只能返回每行自身的日期,无法提取国家维度的统一最早基期。

实现代码
library(dplyr)

df <- df %>%
  # 仅按国家维度分组,保证同国家所有观测在同一分组内计算
  group_by(Country) %>%
  mutate(
    # 提取当前国家的最早观测日期作为基期
    Base_Date = min(Date),
    # 匹配基期对应的基准金额,若存在同日期多条观测取第一条避免报错
    base_amount = Amount[Date == Base_Date][1],
    # 按定基指数公式计算,结果保留2位小数,与示例数值逻辑一致
    PriceIndex = round((Amount / base_amount - 1) * 100, 2)
  ) %>%
  # 删除计算过程生成的临时列
  select(-base_amount) %>%
  ungroup()
计算逻辑说明
  • 分组规则修正:移除分组中多余的Date维度,仅保留Country作为分组键,确保同一国家的所有数据参与组内计算
  • 基期提取:直接用min(Date)获取每个国家的最早观测日期,作为该国统一的价格指数基期
  • 指数公式:定基价格指数计算逻辑为(当期金额 / 基期金额 - 1) * 100,基期指数固定为100,计算结果保留2位小数,和给出的示例数值完全匹配
  • 异常兼容:如果某国存在多条相同最早日期的观测,代码默认取第一条匹配到的金额作为基准值,避免计算报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 17:03:33