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

R语言如何按字符类别与日期分组对数值进行求和

实现双维度分组求和的方法

你可以直接使用dplyr的group_by + summarise组合完成需求,操作逻辑简单清晰:

步骤1:加载依赖包

library(dplyr)
# 若后续需要补全缺失月份,同时加载tidyr
library(tidyr)

步骤2:基础双维度分组求和

你的date列已经统一为每月1号格式,可直接作为月份维度参与分组:

result <- mydata %>%
  # 传入多个分组列即可实现多维度分组,列之间用逗号分隔
  group_by(char, date) %>%
  # 指定对numb列执行求和聚合
  summarise(numb = sum(numb), .groups = "drop")

执行后得到的结果如下:

char  numb  date
cat   2     21-01-01
cat   1     21-03-01
bird  4     21-01-01
bird  2     21-02-01
dog   6     21-01-01
dog   6     21-02-01
dog   6     21-03-01

步骤3:补全所有月份组合

如果你需要每个字符类别都覆盖所有出现过的月份,可搭配complete函数补全记录:

result_full <- result %>%
  # 补全char和date的所有组合
  complete(char, date, fill = list(numb = 0))

如果你需要缺失月份的数值填充为1而非0,修改fill参数的对应值即可匹配你给出的预期结果。

语法说明

  • group_by支持传入任意数量的分组列,可满足多维度聚合需求
  • summarise可自定义聚合规则,除了sum外也可替换为mean、count等其他统计函数
  • .groups = "drop"用于聚合完成后自动取消分组,避免后续操作受残留分组逻辑影响

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 19:45:04