Cara menghitung jumlah kumulatif per grup di r
Anda dapat menggunakan metode berikut untuk menghitung jumlah kumulatif per grup di R:
Metode 1: Gunakan Basis R
df$cum_sum <- ave(df$values_var, df$group_var, FUN=cumsum)
Metode 2: gunakan dplyr
library (dplyr)
df %>% group_by(group_var) %>% mutate(cum_sum = cumsum(values_var))
Metode 3: Gunakan data.tabel
library (data.table)
setDT(df)[, cum_sum := cumsum(values_var), group_var]
Contoh berikut menunjukkan cara menggunakan setiap metode dalam praktik dengan kerangka data berikut di 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
Contoh 1: hitung jumlah kumulatif per kelompok menggunakan basis R
Kode berikut menunjukkan cara menggunakan fungsi database R ave() untuk menghitung jumlah kumulatif penjualan , yang dikelompokkan berdasarkan toko :
#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
Kolom baru bernama cum_sales menampilkan jumlah kumulatif penjualan , yang dikelompokkan berdasarkan toko .
Contoh 2: Hitung jumlah kumulatif per grup menggunakan dplyr
Kode berikut menunjukkan cara menggunakan berbagai fungsi dari paket dplyr di R untuk menghitung jumlah kumulatif penjualan , yang dikelompokkan berdasarkan toko :
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
Kolom baru bernama cum_sales menampilkan jumlah kumulatif penjualan , yang dikelompokkan berdasarkan toko .
Contoh 3: Hitung jumlah kumulatif berdasarkan kelompok menggunakan data.tabel
Kode berikut menunjukkan cara menggunakan berbagai fungsi dari paket data.table di R untuk menghitung jumlah kumulatif penjualan , yang dikelompokkan berdasarkan toko :
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
Kolom baru bernama cum_sales menampilkan jumlah kumulatif penjualan , yang dikelompokkan berdasarkan toko .
Catatan : Ketiga metode menghasilkan hasil yang sama. Namun, metode dplyr dan data.table akan cenderung lebih cepat ketika bekerja dengan frame data yang sangat besar.
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan penghitungan umum lainnya di R:
Cara menghitung jumlah berdasarkan kelompok di R
Cara menghitung mean per grup di R
Cara menghitung simpangan baku berdasarkan kelompok di R