Een dataframe sorteren op datum in r (met voorbeelden)


Er zijn twee eenvoudige manieren om een dataframe op datum in R te sorteren:

Methode 1: gebruikersopdracht () vanaf de R-basis

 #sort from least recent to most recent
df[ order ( as.Date (df$date, format=" %m/%d/%Y ")),]

#sort from most recent to least recent
df[ rev ( order ( as.Date (df$date, format=" %m/%d/%Y "))),]

Methode 2: gebruik de functies van de lubridate- en dplyr- pakketten

 library (lubridate)
library (dplyr)

#sort from least recent to most recent 
df %>% arrange ( mdy (df$date))

#sort from most recent to least recent
df %>% arrange ( desc ( mdy (df$date)))

Deze tutorial toont een voorbeeld van hoe u elk van deze methoden in de praktijk kunt gebruiken.

Methode 1: gebruik order() van R base

De eenvoudigste manier om een dataframe te sorteren op een datumvariabele in R is door de functie R base order() te gebruiken. De volgende code laat zien hoe u deze functie in de praktijk kunt gebruiken:

 #create and view data frame
df <- data.frame(date=c('10/30/2021', '11/18/2021', '11/13/2021', '11/19/2021'),
                 sales=c(3, 15, 14, 9))
df

        dirty dates
1 10/30/2021 3
2 11/18/2021 15
3 11/13/2021 14
4 11/19/2021 9

#sort from least recent to most recent
df[ order ( as.Date (df$date, format=" %m/%d/%Y ")),]

        dirty dates
1 10/30/2021 3
3 11/13/2021 14
2 11/18/2021 15
4 11/19/2021 9
#sort from most recent to least recent
df[ rev ( order ( as.Date (df$date, format=" %m/%d/%Y "))),]

        dirty date
4 11/19/2021 9
2 11/18/2021 15
3 11/13/2021 14
1 10/30/2021 3

Methode 2: Gebruik Lubridate en Dplyr

Een snellere manier om een dataframe op datumvariabele te sorteren is door de functies in de pakketten lubridate en dplyr te gebruiken. De volgende code laat zien hoe u deze functies in de praktijk kunt gebruiken:

 #create and view data frame
df <- data.frame(date=c('10/30/2021', '11/18/2021', '11/13/2021', '11/19/2021'),
                 sales=c(3, 15, 14, 9))
df

        dirty date
1 10/30/2021 3
2 11/18/2021 15
3 11/13/2021 14
4 11/19/2021 9

#sort from least recent to most recent
df %>% arrange ( mdy (df$date))

        dirty date
1 10/30/2021 3
2 11/13/2021 14
3 11/18/2021 15
4 11/19/2021 9

#sort from most recent to least recent
df %>% arrange ( desc ( mdy (df$date)))

        dirty date
1 11/19/2021 9
2 11/18/2021 15
3 11/13/2021 14
4 10/30/2021 3

Merk op dat we lubridate hebben gebruikt om de datum in mdy() -formaat op te geven, maar je kunt dit spiekbriefje raadplegen om andere datumformaten te zien als je datum in een ander formaat is.

Aanvullende bronnen

Hoe jaar uit datum te extraheren in R
Hoe u dagelijkse gegevens kunt samenvoegen tot maandelijkse en jaarlijkse gegevens in R
Hoe lijnen in R te rangschikken

Einen Kommentar hinzufügen

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