Dplyrを使用して日付でフィルタリングする方法
dplyrパッケージを使用して、R でデータ フレームを日付でフィルターするには、次の方法を使用できます。
方法 1: 日付以降の行をフィルターする
df %>% filter(date_column > ' 2022-01-01 ')
方法 2: 日付の前の行をフィルターする
df %>% filter(date_column < ' 2022-01-01 ')
方法 3: 2 つの日付間の行をフィルターする
df %>% filter(between(date_column, as. Date (' 2022-01-20 '), as. Date (' 2022-02-20 ')))
次の例は、R の次のデータ フレームで各メソッドを実際に使用する方法を示しています。
#create data frame
df <- data. frame (day=seq( as.Date (' 2022-01-01 '), by = ' week ', length.out = 10 ),
sales=c(40, 35, 39, 44, 48, 51, 23, 29, 60, 65))
#view data frame
df
day sales
1 2022-01-01 40
2 2022-01-08 35
3 2022-01-15 39
4 2022-01-22 44
5 2022-01-29 48
6 2022-02-05 51
7 2022-02-12 23
8 2022-02-19 29
9 2022-02-26 60
10 2022-03-05 65
例 1: 日付以降の行をフィルターする
次のコードを使用して、2022 年 1 月 25 日以降の日付を持つデータ フレームの行をフィルターできます。
library (dplyr)
#filter for rows with date after 1/25/2022
df %>% filter(day > ' 2022-01-25 ')
day sales
1 2022-01-29 48
2 2022-02-05 51
3 2022-02-12 23
4 2022-02-19 29
5 2022-02-26 60
6 2022-03-05 65
結果として得られるデータ フレームの各行の日付は、2022 年 1 月 25 日以降になります。
例 2: 日付の前の行をフィルターする
次のコードを使用して、日付が 01/25/2022 より前のデータ フレームの行をフィルターできます。
library (dplyr)
#filter for rows with date before 1/25/2022
df %>% filter(day < ' 2022-01-25 ')
day sales
1 2022-01-01 40
2 2022-01-08 35
3 2022-01-15 39
4 2022-01-22 44
結果として得られるデータ フレームの各行の日付は、2022 年 1 月 25 日より前です。
例 3: 2 つの日付間の行をフィルターする
次のコードを使用して、日付が 01/20/2022 から 02/20/2022 までのデータ フレームの行をフィルターできます。
library (dplyr)
#filter for rows with dates between 1/20/2022 and 2/20/2022
df %>% filter(between(date_column, as. Date (' 2022-01-20 '), as. Date (' 2022-02-20 ')))
day sales
1 2022-01-22 44
2 2022-01-29 48
3 2022-02-05 51
4 2022-02-12 23
5 2022-02-19 29
結果として得られるデータ フレームの各行の日付は、01/20/2022 から 02/20/2022 までです。
注 #1 : 上記のいずれかの方法が機能しない場合は、まずas.Date( function )を使用して、作業している日付を認識可能な日付形式に変換する必要がある場合があります。
注 #2 : dplyr のフィルター関数の完全なドキュメントはここで見つけることができます。
追加リソース
次のチュートリアルでは、dplyr で他の一般的な操作を実行する方法を説明します。
dplyrを使用して特定の文字列を含む行をフィルタリングする方法
dplyrを使って複数の条件でフィルタリングする方法
dplyr で「含まれていない」フィルターを使用する方法