Вы можете использовать следующие методы для фильтрации фрейма данных по датам в 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 января 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 января 2022 года.
Пример 2: фильтровать строки до даты
Мы можем использовать следующий код для фильтрации строк во фрейме данных, имеющих дату до 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
Каждая из строк результирующего фрейма данных имеет дату до 25 января 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