Як фільтрувати за датою за допомогою dplyr


Ви можете використовувати наступні методи для фільтрації кадру даних за датами в R за допомогою пакета dplyr :

Спосіб 1. Фільтруйте рядки після дати

 df %>% filter(date_column > ' 2022-01-01 ')

Спосіб 2: фільтрування рядків до дати

 df %>% filter(date_column < ' 2022-01-01 ') 

Спосіб 3. Фільтруйте рядки між двома датами

 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: фільтрування рядків після дати

Ми можемо використати такий код, щоб відфільтрувати рядки з кадру даних, які мають дату після 25.01.2022:

 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

Кожен із рядків отриманого кадру даних має дату після 25.01.2022.

Приклад 2: фільтрування рядків до дати

Ми можемо використовувати наступний код, щоб фільтрувати рядки з кадру даних, дата яких передує 25.01.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

Кожен із рядків отриманого кадру даних має дату до 25.01.2022.

Приклад 3: фільтрування рядків між двома датами

Ми можемо використовувати наступний код, щоб фільтрувати рядки з кадру даних, дата яких знаходиться між 20.01.2022 і 20.02.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

Кожен із рядків отриманого кадру даних має дату між 20.01.2022 і 20.02.2022.

Примітка №1 : якщо будь-який із наведених вище методів не працює, можливо, вам доведеться спочатку перетворити дати, з якими ви працюєте, у звичний формат дати за допомогою функції as.Date( ) .

Примітка №2 : Ви можете знайти повну документацію функції фільтра в dplyr тут .

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові операції в dplyr:

Як фільтрувати рядки, що містять певний рядок, за допомогою dplyr
Як фільтрувати за кількома умовами за допомогою dplyr
Як використовувати фільтр «не включено» в dplyr

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *