R'de günlük veriler aylık ve yıllık veriler halinde nasıl toplanır?


Bazen günlük verileri R’de haftalık, aylık veya yıllık veriler halinde toplamak isteyebilirsiniz.

Bu eğitimde lubridate ve dplyr paketlerini kullanarak bunun nasıl kolayca yapılacağı açıklanmaktadır.

Örnek: Günlük verileri R’de toplama

R’de bir ürünün ardışık 100 günlük bir süre boyunca günlük satışlarını gösteren aşağıdaki veri çerçevesine sahip olduğumuzu varsayalım:

 #make this example reproducible
set.seed(1)

#create data frame
df <- data.frame(date = as.Date (" 2020-12-01 ") + 0:99,
                 sales = runif (100, 20, 50))

#view first six rows
head(df)

        dirty date
1 2020-12-01 27.96526
2 2020-12-02 31.16372
3 2020-12-03 37.18560
4 2020-12-04 47.24623
5 2020-12-05 26.05046
6 2020-12-06 46.95169

Bu verileri toplamak için lubridate paketinin aşağıdaki sözdizimini kullanan Floor_date() fonksiyonunu kullanabiliriz:

 floor_date (x, unit)

Altın:

  • x: tarih nesnelerinin bir vektörü.
  • birim: yuvarlanacak zaman birimi. Seçenekler arasında saniyeler, dakikalar, saatler, günler, haftalar, aylar, iki ayda bir, çeyrekler, yarım yıllar ve yıllar bulunur.

Aşağıdaki kod parçacıkları, haftaya, aya ve yıla göre ortalama satışları bulmak için bu işlevin dplyr paketindeki group_by() ve Summary() işlevleriyle nasıl kullanılacağını gösterir:

Haftalık ortalama satışlar

 library (lubridate)
library (dplyr)

#round dates down to week
df$week <- floor_date (df$date, " week ")

#find average sales per week
df %>%
  group_by (week) %>%
  summarize (mean = mean (sales))

# A tibble: 15 x 2
   week means
        
 1 2020-11-29 33.9
 2 2020-12-06 35.3
 3 2020-12-13 39.0
 4 2020-12-20 34.4
 5 2020-12-27 33.6
 6 2021-01-03 35.9
 7 2021-01-10 37.8
 8 2021-01-17 36.8
 9 2021-01-24 32.8
10 2021-01-31 33.9
11 2021-02-07 34.1
12 2021-02-14 41.6
13 2021-02-21 31.8
14 2021-02-28 35.2
15 2021-03-07 37.1

Aylık ortalama satış

 library (lubridate)
library (dplyr)

#round dates down to week
df$month <- floor_date (df$date, " month ")

#find average sales by month
df %>%
  group_by (month) %>%
  summarize (mean = mean (sales))

# A tibble: 4 x 2
  month mean
       
1 2020-12-01 35.3
2 2021-01-01 35.6
3 2021-02-01 35.2
4 2021-03-01 37.0

Yıllık ortalama satış

 library (lubridate)
library (dplyr)

#round dates down to week
df$year <- floor_date (df$date, " year ")

#find average sales by month
df %>%
  group_by (year) %>%
  summarize (mean = mean (sales))

# A tibble: 2 x 2
  year means
       
1 2020-01-01 35.3
2 2021-01-01 35.7

Ortalamaya göre toplamayı seçtiğimizi ancak medyan, mod, maksimum, minimum vb. gibi istediğimiz herhangi bir özet istatistiği kullanabileceğimizi unutmayın.

Ek kaynaklar

Aşağıdaki eğitimlerde R’de diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:

R’de grup başına ortalama nasıl hesaplanır
R’de kümülatif toplamlar nasıl hesaplanır
R’de bir zaman serisi nasıl çizilir

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir