gpt4 book ai didi

r - data.frame 中的一些特定计算

转载 作者:行者123 更新时间:2023-12-04 12:29:34 25 4
gpt4 key购买 nike

如何根据 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是实际行

请注意,每个用户的计算必须从零开始。我已经尝试用一个循环来解决这个问题,它适用于一个小的测试用例,但是日期范围非常大,而且对完整数据集的计算只是不想结束。

最佳答案

当处理庞大的数据库时,data.table是一个不错的选择

> library(data.table)
> DT <- data.table(df)
> DT[, total:= cumsum(rev), by=list(user) ]
> DT
user rev total_rev total
1: A 10 10 10
2: A 10 20 20
3: A 20 40 40
4: A 10 50 50
5: B 50 50 50
6: C 50 50 50
7: C 10 60 60
8: C 20 80 80

关于r - data.frame 中的一些特定计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18768818/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com