Jak filtrować według daty za pomocą dplyr


Do filtrowania ramki danych według dat w R przy użyciu pakietu dplyr można użyć następujących metod:

Metoda 1: Filtruj wiersze po dacie

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

Metoda 2: Filtruj wiersze przed datą

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

Metoda 3: Filtruj wiersze między dwiema datami

 df %>% filter(between(date_column, as. Date (' 2022-01-20 '), as. Date (' 2022-02-20 ')))

Poniższe przykłady pokazują, jak w praktyce wykorzystać każdą metodę z następującą ramką danych w 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

Przykład 1: Filtruj wiersze po dacie

Możemy użyć poniższego kodu, aby odfiltrować wiersze z ramki danych, których data jest późniejsza niż 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

Każdy wiersz w wynikowej ramce danych ma datę późniejszą niż 25.01.2022.

Przykład 2: Filtruj wiersze przed datą

Możemy użyć poniższego kodu, aby odfiltrować wiersze z ramki danych, których data przypada przed 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

Każdy wiersz w wynikowej ramce danych ma datę wcześniejszą niż 25.01.2022.

Przykład 3: Filtruj wiersze między dwiema datami

Możemy użyć poniższego kodu, aby odfiltrować wiersze z ramki danych, której data mieści się w przedziale od 20.01.2022 do 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

Każdy wiersz w wynikowej ramce danych ma datę z zakresu od 20.01.2022 do 20.02.2022.

Uwaga nr 1 : Jeśli którakolwiek z powyższych metod nie zadziała, może być konieczne najpierw przekonwertowanie dat, z którymi pracujesz, na rozpoznawalny format daty, za pomocą funkcji as.Date( ) .

Uwaga nr 2 : Pełną dokumentację funkcji filtrującej w dplyr można znaleźć tutaj .

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe operacje w dplyr:

Jak filtrować wiersze zawierające określony ciąg za pomocą dplyr
Jak filtrować według wielu warunków za pomocą dplyr
Jak korzystać z filtra „nieuwzględnionego” w dplyr

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *