R でデータを月ごとにグループ化する方法 (例あり)


R のlubridateパッケージのFloor_date()関数を使用すると、データを月ごとにすばやくグループ化できます。

この関数は次の基本構文を使用します。

 library (tidyverse)

df %>% 
    group_by(month = lubridate::floor_date(date_column, ' month ')) %>%
    summarize(sum = sum(value_column))

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

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

R に、さまざまな日付の商品の総売上高を示す次のデータ フレームがあるとします。

 #create data frame
df <- data. frame (date=as. Date (c('1/4/2022', '1/9/2022', '2/10/2022', '2/15/2022',
                                '3/5/2022', '3/22/2022', '3/27/2022'), '%m/%d/%Y'),
                 sales=c(8, 14, 22, 23, 16, 17, 23))

#view data frame
df

        dirty date
1 2022-01-04 8
2 2022-01-09 14
3 2022-02-10 22
4 2022-02-15 23
5 2022-03-05 16
6 2022-03-22 17
7 2022-03-27 23

次のコードを使用して、月ごとにグループ化された売上の合計を計算できます。

 library (tidyverse)

#group data by month and sum sales
df %>% 
    group_by(month = lubridate::floor_date(date, ' month ')) %>%
    summarize(sum_of_sales = sum(sales))

# A tibble: 3 x 2
  month sum_of_sales
              
1 2022-01-01 22
2 2022-02-01 45
3 2022-03-01 56

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

  • 1月には合計22件の販売が行われました。
  • 2月には合計45件が販売されました。
  • 3月には合計56件が販売された。

別のメトリクスを使用してデータを集計することもできます。

たとえば、1 日の最大売上を月ごとにグループ化して計算できます。

 library (tidyverse)

#group data by month and find max sales
df %>% 
    group_by(month = lubridate::floor_date(date, ' month ')) %>%
    summarize(max_of_sales = max(sales))

# A tibble: 3 x 2
  month max_of_sales
              
1 2022-01-01 14
2 2022-02-01 23
3 2022-03-01 23

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

  • 1 月の 1 日の最多販売数は14でした。
  • 2 月の 1 日の最多販売数は23でした。
  • 3 月の 1 日の最多販売数は23でした。

summary()関数で必要なメトリクスを自由に使用してください。

追加リソース

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

Rで日付から年を抽出する方法
Rで日付から月を抽出する方法
R でデータフレームを日付で並べ替える方法
Rで因子を日付に変換する方法

コメントを追加する

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