r - 沿 mutate 函数使用 cumsum() 的问题
问题描述
我有这个简化df
,我试图cumsum()
为每个组
library(dplyr)
Country <- c(rep("A",5), rep("B",4), rep("C", 5))
Date <- 1:14
Value <- c(2:6, 10:13, 7:11)
df <- data.frame(Date, Country, Value)
> view(df)
Date Country Value
1 A 2
2 A 3
3 A 4
4 A 5
5 A 6
6 B 10
7 B 11
8 B 12
9 B 13
10 C 7
11 C 8
12 C 9
13 C 10
14 C 11
我知道这似乎是一个重复的问题,但我正在执行以下操作,不知道为什么不起作用。我得到的不是按组的累积总和,而是cumsum
所有列:
df_sum <- df%>%
group_by(Country) %>%
mutate(Sum = cumsum(Value))
Date Country Value Sum
<int> <chr> <int> <int>
1 A 2 2
2 A 3 5
3 A 4 9
4 A 5 14
5 A 6 20
6 B 10 30
7 B 11 41
8 B 12 53
9 B 13 66
10 C 7 73
11 C 8 81
12 C 9 90
13 C 10 100
14 C 11 111
解决方案
OP 加载的plyr
包也可能掩盖dplyr::mutate
了plyr::mutate
. 要么,在仅加载的新R
会话上执行此操作,要么指定dplyr
packagename::functionname
dplyr::mutate
library(dplyr)
df%>%
group_by(Country) %>%
dplyr::mutate(Sum = cumsum(Value)) %>%
ungroup
-输出
# A tibble: 14 x 4
# Date Country Value Sum
# <int> <chr> <int> <int>
# 1 1 A 2 2
# 2 2 A 3 5
# 3 3 A 4 9
# 4 4 A 5 14
# 5 5 A 6 20
# 6 6 B 10 10
# 7 7 B 11 21
# 8 8 B 12 33
# 9 9 B 13 46
#10 10 C 7 7
#11 11 C 8 15
#12 12 C 9 24
#13 13 C 10 34
#14 14 C 11 45
推荐阅读
- tableau-api - 在 1 个视图中同时从 Tableau 连接 2 个数据源(Hive 和 SQL-Server)
- html - IONIC 6 + Angular:使用警报控制器删除对象无法正常工作
- javascript - 对象数组转换为嵌套数组
- mysql - 切换到 MySQL 时 Django 迁移失败
- javascript - 我需要一种从数组中获取随机数 (0-10) 的方法,然后获取以下 2 个后续 #。比如7、8、9。3,4,5等
- python - matplotlib:使用大数据框创建多页 pdf
- html - 我应该在 App.js 中包含哪些组件?
- javascript - 在堆积面积图的狭窄区域隐藏标签(D3 Observable)
- javascript - Django - 将模型字段值插入 JavaScript
- python-3.x - 如何使用用户输入更新我的字典并每次保存?