R でデータを時間別にグループ化する方法 (例あり)


次の構文を使用して、データを時間ごとにグループ化し、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))

この特定の例では、値を時間ごとにHourという列にグループ化し、各時間のSales列の値の合計を計算します。

次の例は、この構文を実際に使用する方法を示しています。

例: R で時間ごとにデータをグループ化する

店舗の 1 日のさまざまな時間帯の販売数を示す次のデータ フレームがあるとします。

 #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

次の構文を使用して、時間列を時間ごとにグループ化し、時間ごとの売上の合計を計算できます。

 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

結果から次のことがわかります。

  • 最初の1時間で合計38個の販売が行われました。
  • 2 時間以内に合計29 個の販売が行われました。
  • 4 時間以内に合計10 件の販売が行われました。
  • 5時間の間に合計9件の販売が行われました。

別の集計を実行することもできることに注意してください。

たとえば、1 時間あたりの平均販売数を計算できます。

 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

結果から次のことがわかります。

  • 最初の 1 時間での平均販売数は19でした。
  • 2 時間目の平均売上は14.5でした。
  • 4 時間以内に行われた平均売上は10でした。
  • 5 時間以内の平均売上は9でした。

独自のデータ フレームを時間別に自由にグループ化し、 summary()関数のメトリクスを変更することで、必要な特定のメトリクスを計算できます。

追加リソース

次のチュートリアルでは、R で他の一般的な操作を実行する方法について説明します。

R でデータを月ごとにグループ化する方法
R でデータを週ごとにグループ化する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です