gpt4 book ai didi

r - 如何使用 dplyr 将累积列添加到 R 数据帧?

转载 作者:行者123 更新时间:2023-12-02 18:13:01 26 4
gpt4 key购买 nike

我和this post有同样的问题,但我想使用dplyr:

使用 R 数据框,例如:

df <- data.frame(id = rep(1:3, each = 5)
, hour = rep(1:5, 3)
, value = sample(1:15))

如何添加与 id 匹配的累积和列?

如果没有dplyr,上一篇文章接受的解决方案是:

df$csum <- ave(df$value, df$id, FUN=cumsum)

最佳答案

像这样吗?

df <- data.frame(id = rep(1:3, each = 5),
hour = rep(1:5, 3),
value = sample(1:15))

mutate(group_by(df,id), csum=cumsum(value))

或者如果您使用dplyr的管道运算符:

df %>% group_by(id) %>% mutate(csum = cumsum(value))

两种情况的结果:

Source: local data frame [15 x 4]
Groups: id

id hour value csum
1 1 1 4 4
2 1 2 14 18
3 1 3 8 26
4 1 4 2 28
5 1 5 3 31
6 2 1 10 10
7 2 2 7 17
8 2 3 5 22
9 2 4 12 34
10 2 5 9 43
11 3 1 6 6
12 3 2 15 21
13 3 3 1 22
14 3 4 13 35
15 3 5 11 46

关于r - 如何使用 dplyr 将累积列添加到 R 数据帧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21818427/

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