如何在R数据框中创建具有累加总和的列?
累积总和用于确定变量或组的总和,并帮助我们了解该变量或组的值随时间的变化。在创建累积量时,我们必须确保总和与最后一个值的累积和(取决于总和的方向)相同。我们可以使用dplyr包的mutate函数来查找累积值并为其创建列。
示例
请看以下数据帧-
x1 <-1:20 grp <-rep(LETTERS[1:4],each=5) df <-data.frame(x1,grp) df
输出结果
x1 grp 1 1 A 2 2 A 3 3 A 4 4 A 5 5 A 6 6 B 7 7 B 8 8 B 9 9 B 10 10 B 11 11 C 12 12 C 13 13 C 14 14 C 15 15 C 16 16 D 17 17 D 18 18 D 19 19 D 20 20 D
创建一个列cumusum,每grp中x1的值的累加总和-
示例
df%>%group_by(grp)%>%mutate(cumusum=cumsum(x1)) # A tibble: 20 x 3 # Groups: grp [4] x1 grp cumusum
输出结果
<int> <fct> <int> 1 1 A 1 2 2 A 3 3 3 A 6 4 4 A 10 5 5 A 15 6 6 B 6 7 7 B 13 8 8 B 21 9 9 B 30 10 10 B 40 11 11 C 11 12 12 C 23 13 13 C 36 14 14 C 50 15 15 C 65 16 16 D 16 17 17 D 33 18 18 D 51 19 19 D 70 20 20 D 90
让我们看另一个例子-
示例
set.seed(1)
Class <-rep(c("C1","C2","C3","C4","C5"),each=4)
Frequency <-sample(1:100,20)
data <-data.frame(Class,Frequency)
data输出结果
Class Frequency 1 C1 68 2 C1 39 3 C1 1 4 C1 34 5 C2 87 6 C2 43 7 C2 14 8 C2 82 9 C3 59 10 C3 51 11 C3 85 12 C3 21 13 C4 54 14 C4 74 15 C4 7 16 C4 73 17 C5 79 18 C5 37 19 C5 83 20 C5 97
创建一个列cumumum,其累加值的总和为每个类-
示例
data%>%group_by(Class)%>%mutate(cumusum=cumsum(Frequency)) # A tibble: 20 x 3 # Groups: Class [5] Class Frequency cumusum
输出结果
<fct> <int> <int> 1 C1 68 68 2 C1 39 107 3 C1 1 108 4 C1 34 142 5 C2 87 87 6 C2 43 130 7 C2 14 144 8 C2 82 226 9 C3 59 59 10 C3 51 110 11 C3 85 195 12 C3 21 216 13 C4 54 54 14 C4 74 128 15 C4 7 135 16 C4 73 208 17 C5 79 79 18 C5 37 116 19 C5 83 199 20 C5 97 296
热门推荐
10 小侄过生日祝福语简短
11 小店营业的祝福语简短
12 担任老师的祝福语简短
13 饮料吧台祝福语简短大气
14 公司新春搞笑祝福语简短
15 高情商敬酒祝福语简短
16 婚礼祝福语新郎妹妹简短
17 教师答辩通过祝福语简短
18 生女孩红包简短祝福语