Dplyr kullanarak grup başına ofset nasıl hesaplanır
R’de grup kaydırmalı değerleri dplyr paketini kullanarak hesaplamak için aşağıdaki sözdizimini kullanabilirsiniz:
df %>%
group_by(var1) %>%
mutate(lag1_value = lag(var2, n= 1 , order_by=var1))
Not : mutate() işlevi, gecikmeli değerleri içeren veri çerçevesine yeni bir değişken ekler.
Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.
Örnek: Dplyr kullanarak kaydırılan değerleri gruba göre hesaplama
Diyelim ki R’de iki farklı mağazanın farklı günlerde yaptığı satışları gösteren aşağıdaki veri çerçevesine sahibiz:
#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
Her mağazanın gecikmeli satış değerlerini görüntüleyen yeni bir sütun oluşturmak için aşağıdaki kodu kullanabiliriz:
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
Sonucun nasıl yorumlanacağı aşağıda açıklanmıştır:
- Lag1_sales’in ilk değeri NA’dır çünkü A mağazasının satışları için önceki bir değer yoktur.
- lag1_sales’in ikinci değeri NA’dır çünkü B mağazasının satışları için önceki bir değer yoktur.
- lag1_sales’in üçüncü değeri 7’dir çünkü A mağazasının önceki satış değeridir.
- lag1_sales’in dördüncü değeri 12’dir çünkü B mağazasının önceki satış değeridir.
Ve benzeri.
Lag() işlevinde n’nin değerini değiştirerek kullanılan gecikme sayısını da değiştirebileceğinizi unutmayın.
Ek kaynaklar
Aşağıdaki eğitimlerde R’de diğer yaygın hesaplamaların nasıl gerçekleştirileceği açıklanmaktadır:
dplyr kullanarak bir cari toplam nasıl hesaplanır
R’de gruba göre toplam nasıl hesaplanır
R’de grup başına ortalama nasıl hesaplanır