Cara mengelompokkan data berdasarkan waktu di r (dengan contoh)


Anda dapat menggunakan sintaks berikut untuk mengelompokkan data berdasarkan waktu dan melakukan agregasi di R:

 library (dplyr)
library (lubridate)

#group by hours in time column and calculate sum of sales
df %>%
  group_by(time=floor_date(time, ' 1 hour ')) %>%
  summarize(sum_sales=sum(sales))

Contoh khusus ini mengelompokkan nilai berdasarkan jam ke dalam kolom yang disebut Jam dan kemudian menghitung jumlah nilai di kolom Penjualan untuk setiap jam.

Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktiknya.

Contoh: mengelompokkan data berdasarkan waktu di R

Katakanlah kita memiliki kerangka data berikut yang menunjukkan jumlah penjualan yang dilakukan pada waktu berbeda dalam sehari untuk sebuah toko:

 #create data frame
df <- data. frame (time=as. POSIXct (c('2022-01-01 01:14:00', '2022-01-01 01:24:15',
                                 '2022-01-01 02:52:19', '2022-01-01 02:54:00',
                                 '2022-01-01 04:05:10', '2022-01-01 05:35:09')),
                 sales=c(18, 20, 15, 14, 10, 9))

#view data frame
df

                 time sales
1 2022-01-01 01:14:00 18
2 2022-01-01 01:24:15 20
3 2022-01-01 02:52:19 15
4 2022-01-01 02:54:00 14
5 2022-01-01 04:05:10 10
6 2022-01-01 05:35:09 9

Kita dapat menggunakan sintaks berikut untuk mengelompokkan kolom waktu berdasarkan jam dan menghitung jumlah penjualan setiap jam:

 library (dplyr)
library (lubridate)

#group by hours in time column and calculate sum of sales
df %>%
  group_by(time=floor_date(time, ' 1 hour ')) %>%
  summarize(sum_sales=sum(sales))

`summarise()` ungrouping output (override with `.groups` argument)
# A tibble: 4 x 2
  time sum_sales
                    
1 2022-01-01 01:00:00 38
2 2022-01-01 02:00:00 29
3 2022-01-01 04:00:00 10
4 2022-01-01 05:00:00 9

Dari hasilnya kita dapat melihat:

  • Sebanyak 38 penjualan dilakukan dalam satu jam pertama.
  • Sebanyak 29 penjualan dilakukan pada jam kedua.
  • Sebanyak 10 penjualan dilakukan pada jam keempat.
  • Sebanyak 9 penjualan dilakukan selama jam kelima.

Perhatikan bahwa kita juga dapat melakukan agregasi lain.

Misalnya, kita dapat menghitung jumlah rata-rata penjualan per jam:

 library (dplyr)
library (lubridate)

#group by hours in time column and calculate mean of sales
df %>%
  group_by(time=floor_date(time, ' 1 hour ')) %>%
  summarize(mean_sales=mean(sales))

`summarise()` ungrouping output (override with `.groups` argument)
# A tibble: 4 x 2
  time mean_sales
                     
1 2022-01-01 01:00:00 19  
2 2022-01-01 02:00:00 14.5
3 2022-01-01 04:00:00 10  
4 2022-01-01 05:00:00 9

Dari hasilnya kita dapat melihat:

  • Rata-rata penjualan yang dilakukan pada jam pertama adalah 19 .
  • Rata-rata penjualan yang dilakukan pada jam kedua adalah 14,5 .
  • Rata-rata penjualan yang dilakukan pada jam keempat adalah 10 .
  • Rata-rata penjualan yang dilakukan pada jam kelima adalah 9 .

Jangan ragu untuk mengelompokkan kerangka data Anda berdasarkan waktu dan menghitung metrik tertentu yang Anda inginkan dengan memodifikasi metrik di fungsi ringkasan() .

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan operasi umum lainnya di R:

Cara mengelompokkan data berdasarkan bulan di R
Cara mengelompokkan data berdasarkan minggu di R

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *