This is R code to calculate cumulative sum.
1) Data created
treatment=rep(c("Cultivar A", "Cultivar B", "Cultivar C", "Cultivar D", "Cultivar E"), each=3)
rep=rep(c("I", "II", "III"), time=5)
yield=c(10, 11, 21, 13, 23, 23, 13, 13, 5, 33, 21, 13, 42, 12, 13)
nitrogen=c(500,450,482,485,770,158,565,985,458,636,965,458,565,985,458)
dataA=data.frame(treatment, rep, yield, nitrogen)
treatment rep yield nitrogen
1 Cultivar A I 10 500
2 Cultivar A II 11 450
3 Cultivar A III 21 482
4 Cultivar B I 13 485
5 Cultivar B II 23 770
6 Cultivar B III 23 158
7 Cultivar C I 13 565
8 Cultivar C II 13 985
9 Cultivar C III 5 458
10 Cultivar D I 33 636
11 Cultivar D II 21 965
12 Cultivar D III 13 458
13 Cultivar E I 42 565
14 Cultivar E II 12 985
15 Cultivar E III 13 458
2) Cumulative Sum per group
if(!require(dplyr)) install.packages("dplyr")
library(dplyr)
dataB= data.frame(dataA %>%
group_by(treatment) %>%
mutate(yield_accu=cumsum(yield)))
dataC= data.frame(dataB %>%
group_by(treatment) %>%
mutate(nitrogen_accu=cumsum(nitrogen)))
dataC
treatment rep yield nitrogen <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color">yield_accu nitrogen_accu</mark>
1 Cultivar A I 10 500 <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color">10 500</mark>
2 Cultivar A II 11 450 <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color">21 950</mark>
3 Cultivar A III 21 482 <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color">42 1432</mark>
4 Cultivar B I 13 485 <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color">13 485</mark>
5 Cultivar B II 23 770 <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color">36 1255</mark>
6 Cultivar B III 23 158 <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color">59 1413</mark>
7 Cultivar C I 13 565 <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color">13 565</mark>
8 Cultivar C II 13 985 <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color">26 1550</mark>
9 Cultivar C III 5 458 <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color">31 2008</mark>
10 Cultivar D I 33 636 <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color">33 636</mark>
11 Cultivar D II 21 965 <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color">54 1601</mark>
12 Cultivar D III 13 458 <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color">67 2059</mark>
13 Cultivar E I 42 565 <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color">42 565</mark>
14 Cultivar E II 12 985 <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color"> 54 1550</mark>
15 Cultivar E III 13 458 <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color">67 2008</mark>

3) datacume() function
To make this process easier, I developed an R function, datacume(). For details, please read the post below.
1) Install the function
if(!require(remotes)) install.packages("remotes")
if (!requireNamespace("datacume", quietly = TRUE)) {
remotes::install_github("agronomy4future/datacume", force= TRUE)
}
library(remotes)
library(datacume)
2) Run the code
if(!require(dplyr)) install.packages("dplyr")
library(dplyr)
dataD= datacume(
data= dataA,
group_vars= c("treatment"),
time_var= rep,
response_vars= c("yield","nitrogen"))
dataD
treatment rep yield nitrogen Cumulative_yield Cumulative_nitrogen
1 Cultivar A I 10 500 10 500
2 Cultivar A II 11 450 21 950
3 Cultivar A III 21 482 42 1432
4 Cultivar B I 13 485 13 485
5 Cultivar B II 23 770 36 1255
6 Cultivar B III 23 158 59 1413
7 Cultivar C I 13 565 13 565
8 Cultivar C II 13 985 26 1550
9 Cultivar C III 5 458 31 2008
10 Cultivar D I 33 636 33 636
11 Cultivar D II 21 965 54 1601
12 Cultivar D III 13 458 67 2059
13 Cultivar E I 42 565 42 565
14 Cultivar E II 12 985 54 1550
15 Cultivar E III 13 458 67 2008

© 2022 – 2023 https://agronomy4future.com