如何在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 好听的元旦简短祝福语