R에서 날짜 범위를 하위 정의하는 방법(예제 포함)


R에서 날짜 범위로 데이터 프레임을 하위 정의하는 가장 간단한 방법은 다음 구문을 사용하는 것입니다.

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

이 튜토리얼에서는 이 기능의 실제 사용에 대한 몇 가지 예를 제공합니다.

예 1: 두 날짜 사이의 하위 집합

다음 코드는 두 개의 포함 날짜 사이에 있는 데이터 프레임의 행을 선택하는 방법을 보여줍니다.

 #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

두 개의 독점 날짜 사이의 선을 선택하려면 상단 및 하단 기호를 수정하기만 하면 됩니다.

 #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에서 일일 데이터를 월간 및 연간 데이터로 집계하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다