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

R语言按条件合并分组并按年月统计指定列求和的实现咨询

R语言分组聚合实现代码

我们需要先将分组列中A2、A3的取值统一为同一分组,再按年份、月份分组对指定字段求和,两种实现方式如下:

  • tidyverse 实现
library(dplyr)

# 构造示例数据
df1 <- data.frame(
  V = rep(paste("A",1:3,sep=""), each=12),
  year = rep(c(2020,2021), each=6, len=36),
  month = rep(c(1:3), each=2, len=36),
  Fo = 1:36,
  JA = 36:1,
  KH = c(1:12,12:1,21:32)
)

df_result <- df1 %>%
  # 合并A2、A3为同一分组
  mutate(V = case_when(
    V %in% c("A2", "A3") ~ "A2&A3",
    TRUE ~ V
  )) %>%
  # 按分组、年份、月份分组
  group_by(V, year, month) %>%
  # 对指定字段求和
  summarise(
    Fo = sum(Fo),
    JA = sum(JA),
    KH = sum(KH),
    .groups = "drop"
  )

# 若仅需输出合并后的A2&A3结果,可增加筛选步骤:
# df_result <- df_result %>% filter(V == "A2&A3")
  • base R 实现
# 构造示例数据
df1 <- data.frame(
  V = rep(paste("A",1:3,sep=""), each=12),
  year = rep(c(2020,2021), each=6, len=36),
  month = rep(c(1:3), each=2, len=36),
  Fo = 1:36,
  JA = 36:1,
  KH = c(1:12,12:1,21:32)
)

# 生成分组标签
df1$group <- ifelse(df1$V %in% c("A2", "A3"), "A2&A3", df1$V)
# 聚合计算
df_result <- aggregate(cbind(Fo, JA, KH) ~ group + year + month, data = df1, FUN = sum)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 11:42:02