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

如何按order对tibble数据行进行聚合计算?

按itemID聚合计算order与n的乘积之和

数据复现代码

df <- structure(list(itemID = c(9, 11, 19, 26, 26, 26, 35, 35, 35, 
                          35), order = c(1, 1, 1, 1, 2, 3, 1, 2, 3, 4), dayR = structure(c(17532, 
                                                                                           17532, 17532, 17532, 17532, 17532, 17532, 17532, 17532, 17532
                          ), class = "Date"), n = c(1L, 1L, 2L, 96L, 5L, 1L, 379L, 23L, 
                                                    4L, 1L)), row.names = c(NA, -10L), class = c("tbl_df", "tbl", 
                                                                                                 "data.frame"))

解决方案(dplyr 方法)

适合处理tibble格式数据,用tidyverse工具链实现分组聚合:

library(dplyr)

result <- df %>%
  group_by(itemID, dayR) %>%
  summarize(n = sum(order * n), .groups = "drop")

# 查看结果
print(result)

运行输出结果:

# A tibble: 5 × 3
  itemID dayR          n
   <dbl> <date>     <int>
1      9 2018-01-01     1
2     11 2018-01-01     1
3     19 2018-01-01     2
4     26 2018-01-01   109
5     35 2018-01-01   442

解决方案(Base R 方法)

无需加载额外包,用基础R函数实现:

# 简洁写法
result_base <- transform(
  aggregate(order * n ~ itemID + dayR, df, sum),
  n = `order * n`
) %>% select(-`order * n`)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 04:15:18