如何在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 9字祝福语简短创意
18 祝贺员工结婚祝福语简短