Hoe de cumulatieve som per groep in r te berekenen
Je kunt de volgende methoden gebruiken om een cumulatief bedrag per groep in R te berekenen:
Methode 1: Gebruik Base R
df$cum_sum <- ave(df$values_var, df$group_var, FUN=cumsum)
Methode 2: gebruik dplyr
library (dplyr)
df %>% group_by(group_var) %>% mutate(cum_sum = cumsum(values_var))
Methode 3: Gebruik data.table
library (data.table)
setDT(df)[, cum_sum := cumsum(values_var), group_var]
De volgende voorbeelden laten zien hoe u elke methode in de praktijk kunt gebruiken met het volgende dataframe in R:
#create data frame df <- data. frame (store=rep(c(' A ', ' B ', ' C '), each= 4 ), sales=c(3, 4, 4, 2, 5, 8, 9, 7, 6, 8, 3, 2)) #view data frame df blind sales 1 to 3 2 to 4 3 to 4 4 to 2 5 B 5 6 B 8 7 B 9 8 B 7 9 C 6 10 C 8 11 C 3 12 C 2
Voorbeeld 1: bereken de cumulatieve som per groep met behulp van de R-basis
De volgende code laat zien hoe u de functie ave() van de R-database gebruikt om de cumulatieve som van sales te berekenen, gegroepeerd per winkel :
#add column to show cumulative sales by store df$cum_sales <- ave(df$sales, df$store, FUN=cumsum) #view updated data frame df store sales cum_sales 1 to 3 3 2 to 4 7 3 to 4 11 4 to 2 13 5 B 5 5 6 B 8 13 7 B 9 22 8 B 7 29 9 C 6 6 10 C 8 14 11 C 3 17 12 C 2 19
De nieuwe kolom genaamd cum_sales geeft de cumulatieve som van de verkopen weer, gegroepeerd per winkel .
Voorbeeld 2: Bereken de cumulatieve som per groep met behulp van dplyr
De volgende code laat zien hoe u verschillende functies uit het dplyr-pakket in R kunt gebruiken om de cumulatieve som van sales te berekenen, gegroepeerd per winkel :
library (dplyr) #add column to show cumulative sales by store df %>% group_by(store) %>% mutate(cum_sales = cumsum(sales)) #view updated data frame df # A tibble: 12 x 3 # Groups: store [3] store sales cum_sales 1 to 3 3 2 to 4 7 3 to 4 11 4 to 2 13 5 B 5 5 6 B 8 13 7 B 9 22 8 B 7 29 9 C 6 6 10 C 8 14 11 C 3 17 12 C 2 19
De nieuwe kolom genaamd cum_sales geeft de cumulatieve som van de verkopen weer, gegroepeerd per winkel .
Voorbeeld 3: Bereken de cumulatieve som per groep met behulp van data.table
De volgende code laat zien hoe u verschillende functies uit het pakket data.table in R kunt gebruiken om de cumulatieve som van sales te berekenen, gegroepeerd per winkel :
library (data.table) #add column to show cumulative sales by store setDT(df)[, cum_sales := cumsum(sales), store] #view updated data frame df store sales cum_sales 1: A 3 3 2: A 4 7 3: A 4 11 4: A 2 13 5: B 5 5 6: B 8 13 7: B 9 22 8: B 7 29 9: C 6 6 10: C 8 14 11: C 3 17 12: C 2 19
De nieuwe kolom genaamd cum_sales geeft de cumulatieve som van de verkopen weer, gegroepeerd per winkel .
Opmerking : alle drie de methoden leveren hetzelfde resultaat op. De methoden dplyr en data.table zullen echter doorgaans sneller zijn bij het werken met extreem grote dataframes.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende berekeningen in R kunt uitvoeren:
Hoe de som per groep in R te berekenen
Hoe het gemiddelde per groep in R te berekenen
Hoe de standaardafwijking per groep in R te berekenen