【发布时间】:2020-12-15 19:11:28
【问题描述】:
我有这个简化的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
【问题讨论】:
-
如果我复制/粘贴您的代码,我不会得到相同的结果。您是否在新的 R 会话中尝试过此操作?你确定它是可重现的吗?
-
它是可重现的。我认为问题是我昨天安装的一个包,并以某种方式与其他包混淆。还是谢谢你
-
那么,你加载了哪些包?你的
sessionInfo()是什么样的?在新的 R 会话中,不应自动加载任何内容,因此您运行的代码可能比此处显示的要多。 -
我只加载了 dplyr 哈哈。但是我认为搞砸的包是qpcR,因为我昨天遇到了一些麻烦。
-
您能否通过向我们展示
sessionInfo()来验证您是否只加载了dplyr。只是安装其他软件包根本不应该有任何区别。仅在加载包时才重要。