【发布时间】:2013-09-17 02:36:20
【问题描述】:
如何根据 R 中前一行的结果进行计算? 为了更清楚,想象一下下面的数据框:
user rev total_rev
A 10 10
A 10 20
A 20 40
A 10 50
B 50 50
C 50 50
C 10 60
C 20 80
其中 user 是一个唯一的 ID 变量,rev 是一个度量变量(例如收入),我想将其聚合到新变量“total_rev”中。它应该包含变量“rev”到特定行的总和,因此必须对每一行进行如下计算:
> total_rev[i] = total_rev[i-1] + rev[i]
其中 i 是实际行
请注意,每个用户的计算必须从零开始。我已经尝试使用循环解决这个问题,该循环适用于一个小测试用例,但日期帧非常大,并且对完整数据集的计算不想结束。
【问题讨论】:
-
欢迎来到 SO。这个问题非常简单,应该可以通过您的一些快速研究来解决。
R是矢量化的,并且具有出色的聚合工具。看看这里,用谷歌搜索cumulative sums和split-apply-combine的数据操作策略。
标签: r dataframe data-manipulation