r - 如何创建按 2 个不同列分组的累积总和
问题描述
假设我有以下数据框,初始化为 df:
ID date value
A 01/2012 1
A 03/2012 2
A 05/2012 4
A 07/2012 3
A 09/2012 7
A 11/2012 1
A 01/2013 2
A 03/2013 8
A 05/2013 13
A 07/2013 2
A 09/2013 5
A 11/2013 2
B 01/2012 3
B 03/2012 9
B 05/2012 1
B 07/2012 0
B 09/2012 12
B 11/2012 3
B 01/2013 1
B 03/2013 4
B 05/2013 3
B 07/2013 3
B 09/2013 1
B 11/2013 1
其中日期变量的格式为 mm/yyyy。我正在寻找一种在此数据框中创建附加列的方法,该列给出按 ID 和年份分组的值列的累积总和。例如,以下输出是我想要的:
ID date value cumsum
A 01/2012 1 1
A 03/2012 2 3
A 05/2012 4 7
A 07/2012 3 10
A 09/2012 7 17
A 11/2012 1 18
A 01/2013 2 2
A 03/2013 8 10
A 05/2013 13 23
A 07/2013 2 25
A 09/2013 5 30
A 11/2013 2 32
B 01/2012 3 3
B 03/2012 9 12
B 05/2012 1 13
B 07/2012 0 13
B 09/2012 12 25
B 11/2012 3 28
B 01/2013 1 1
B 03/2013 4 5
B 05/2013 3 8
B 07/2013 3 11
B 09/2013 1 12
B 11/2013 1 13
如您所见,每年的总和都会重置,但每个 ID 也会重置。本质上,我不确定如何创建按 2 列而不是 1 列分组的累积总和。任何帮助将不胜感激
解决方案
可选解决方案:
library(data.tabe)
setDT(df)[,cumsum:=cumsum(value),by=.(ID,substr(date, 4,8))][]
推荐阅读
- android - 我在哪里将逻辑放在片段中以与 UI 交互?安卓科特林
- laravel - 在 dev 中预构建所有(包括未使用的)顺风类
- image-segmentation - 使用灰度图像数据集进行训练 - MASKRCNN Matterport
- postgresql - Strapi 与 Postgres 故障转移数据库连接字符串
- wpf - WPF 菜单 - 允许在禁用的菜单项中启用特定控件
- jquery - 使用 jQuery 在 cookie 中切换类和保存状态 - 如何避免闪烁和 AJAX 问题?
- angular8 - 在使用 jspdf 和 html2canvas 时,数据在分页时被切断,有时在新页面上重复
- scala - IntelliJ 无法识别 Scala 项目
- python - 从管理页面 django 打印表格
- c# - 无法将文件从本机反应发送到 .net 核心 api - 上传图片