Cara menghitung offset per grup menggunakan dplyr
Anda dapat menggunakan sintaks berikut untuk menghitung nilai pergeseran grup di R menggunakan paket dplyr :
df %>%
group_by(var1) %>%
mutate(lag1_value = lag(var2, n= 1 , order_by=var1))
Catatan : Fungsi mutate() menambahkan variabel baru ke bingkai data yang berisi nilai tertunda.
Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktiknya.
Contoh: Hitung nilai yang digeser berdasarkan grup menggunakan dplyr
Misalkan kita memiliki kerangka data berikut di R yang menunjukkan penjualan yang dilakukan oleh dua toko berbeda pada hari berbeda:
#create data frame df <- data. frame (store=c('A', 'B', 'A', 'B', 'A', 'B', 'A', 'B'), sales=c(7, 12, 10, 9, 9, 11, 18, 23)) #view data frame df blind sales 1 to 7 2 B 12 3 to 10 4 B 9 5 to 9 6 B 11 7 to 18 8 B 23
Kita dapat menggunakan kode berikut untuk membuat kolom baru yang menampilkan nilai penjualan tertinggal untuk setiap toko:
library (dplyr) #calculate lagged sales by group df %>% group_by(store) %>% mutate(lag1_sales = lag(sales, n= 1 , order_by=store)) # A tibble: 8 x 3 # Groups: store[2] store sales lag1_sales 1 to 7 NA 2 B 12 NA 3 to 10 7 4 B 9 12 5 to 9 10 6 B 11 9 7 to 18 9 8 B 23 11
Berikut cara menafsirkan hasilnya:
- Nilai lag1_sales yang pertama adalah NA karena sebelumnya tidak ada nilai penjualan toko A.
- Nilai lag1_sales yang kedua adalah NA karena sebelumnya tidak ada nilai penjualan toko B.
- Nilai lag1_sales yang ketiga adalah 7 karena merupakan nilai penjualan toko A sebelumnya.
- Nilai lag1_sales yang keempat adalah 12 karena merupakan nilai penjualan toko B sebelumnya.
Dan seterusnya.
Perhatikan bahwa Anda juga dapat mengubah jumlah lag yang digunakan dengan mengubah nilai n dalam fungsi lag() .
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan penghitungan umum lainnya di R:
Cara menghitung jumlah berjalan menggunakan dplyr
Cara menghitung jumlah berdasarkan kelompok di R
Cara menghitung mean per grup di R