Hoe u op datum kunt filteren met dplyr


U kunt de volgende methoden gebruiken om een dataframe op datums in R te filteren met behulp van het dplyr- pakket:

Methode 1: Rijen filteren op datum

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

Methode 2: Rijen vóór datum filteren

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

Methode 3: Filter rijen tussen twee datums

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

De volgende voorbeelden laten zien hoe u elke methode in de praktijk kunt gebruiken met het volgende dataframe in 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

Voorbeeld 1: Rijen filteren op datum

We kunnen de volgende code gebruiken om rijen uit het dataframe te filteren die een datum hebben na 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

Elk van de rijen in het resulterende dataframe heeft een datum na 25-01-2022.

Voorbeeld 2: Filter rijen vóór datum

We kunnen de volgende code gebruiken om rijen uit het dataframe te filteren waarvan de datum vóór 25-01-2022 ligt:

 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

Elk van de rijen in het resulterende dataframe heeft een datum vóór 25-01-2022.

Voorbeeld 3: Filter rijen tussen twee datums

We kunnen de volgende code gebruiken om rijen uit het dataframe te filteren waarvan de datum tussen 20-01-2022 en 20-02-2022 ligt:

 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

Elk van de rijen in het resulterende dataframe heeft een datum tussen 20-01-2022 en 20-02-2022.

Opmerking 1 : Als een van de bovenstaande methoden niet werkt, moet u mogelijk eerst de datums waarmee u werkt, converteren naar een herkenbaar datumformaat met behulp van de as.Date( function ) .

Opmerking #2 : U kunt hier de volledige documentatie van de filterfunctie in dplyr vinden.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende bewerkingen in dplyr uitvoert:

Hoe u rijen kunt filteren die een bepaalde tekenreeks bevatten met behulp van dplyr
Hoe u op meerdere voorwaarden kunt filteren met behulp van dplyr
Hoe u een „niet inbegrepen“ filter gebruikt in dplyr

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert