R で日付範囲によってサブ定義する方法 (例あり)


R で日付範囲によってデータ フレームをサブ定義する最も簡単な方法は、次の構文を使用することです。

 df[df$date >= " some date " & df$date <= " some date ", ]

このチュートリアルでは、この関数の実際の使用例をいくつか紹介します。

例 1: 2 つの日付間のサブセット

次のコードは、2 つの日付を含むデータ フレーム内の行を選択する方法を示しています。

 #make this example reproducible
set.seed(0)

#create data frame
df <- data.frame(date = as . Date (" 2021-01-01 ") - 0:19,
                 sales = runif (20, 10, 500) + seq (50, 69)^2)

#view first six rows
head(df)

        dirty date
1 2021-01-01 2949,382
2 2020-12-31 2741.099
3 2020-12-30 2896.341
4 2020-12-29 3099.698
5 2020-12-28 3371.022
6 2020-12-27 3133.824

#subset between two dates, inclusive
df[df$date >= " 2020-12-25 " & df$date <= " 2020-12-28 ", ]

        dirty dates
5 2020-12-28 3371.022
6 2020-12-27 3133.824
7 2020-12-26 3586.211
8 2020-12-25 3721.891

上部と下部の記号を変更して、2 つの排他的な日付間の行を選択するだけです。

 #make this example reproducible
set.seed(0)

#create data frame
df <- data.frame(date = as . Date (" 2021-01-01 ") - 0:19,
                 sales = runif (20, 10, 500) + seq (50, 69)^2)

#subset between two dates, exclusive
df[df$date > " 2020-12-25 " & df$date < " 2020-12-28 ", ]

        dirty date
6 2020-12-27 3133.824
7 2020-12-26 3586.211

例 2: 特定の日付以降のサブセット

次のコードは、特定の日付以降に表示されるデータ フレーム内の行を選択する方法を示しています。

 #make this example reproducible
set.seed(0)

#create data frame
df <- data.frame(date = as . Date (" 2021-01-01 ") - 0:19,
                 sales = runif (20, 10, 500) + seq (50, 69)^2)

#subset after a certain date
df[df$date >= " 2020-12-22 ", ]

         dirty dates
1 2021-01-01 2949.382
2 2020-12-31 2741.099
3 2020-12-30 2896.341
4 2020-12-29 3099.698
5 2020-12-28 3371.022
6 2020-12-27 3133.824
7 2020-12-26 3586.211
8 2020-12-25 3721.891
9 2020-12-24 3697.791
10 2020-12-23 3799.266
11 2020-12-22 3640.275

例 3: 特定の日付より前のサブセット

次のコードは、特定の日付より前に発生するデータ フレームから行を選択する方法を示しています。

 #make this example reproducible
set.seed(0)

#create data frame
df <- data.frame(date = as . Date (" 2021-01-01 ") - 0:19,
                 sales = runif (20, 10, 500) + seq (50, 69)^2)

#subset before a certain date
df[df$date < " 2020-12-22 ", ]

         dirty date
12 2020-12-21 3831.928
13 2020-12-20 3940.513
14 2020-12-19 4315.641
15 2020-12-18 4294.211
16 2020-12-17 4612.222
17 2020-12-16 4609.873
18 2020-12-15 4850.633
19 2020-12-14 5120.034
20 2020-12-13 4957.217

追加リソース

R で時系列をプロットする方法
Rで日付から年を抽出する方法
R で日次データを月次および年次データに集計する方法

コメントを追加する

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