Comment trier une trame de données par date dans R (avec exemples)
Il existe deux manières simples de trier une trame de données par date dans R :
Méthode 1 : commande utilisateur () à partir de la base R
#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"))),]
Méthode 2 : utiliser les fonctions des packages lubridate et dplyr
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)))
Ce didacticiel montre un exemple d’utilisation pratique de chacune de ces méthodes.
Méthode 1 : utiliser order() à partir de la base R
La manière la plus simple de trier une trame de données par une variable de date dans R est d’utiliser la fonction order() de la base R. Le code suivant montre comment utiliser cette fonction dans la pratique :
#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 date sales 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")),] date sales 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"))),] date sales 4 11/19/2021 9 2 11/18/2021 15 3 11/13/2021 14 1 10/30/2021 3
Méthode 2 : utiliser Lubridate et Dplyr
Un moyen plus rapide de trier une trame de données par variable de date consiste à utiliser les fonctions des packages lubridate et dplyr. Le code suivant montre comment utiliser ces fonctions en pratique :
#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 date sales 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)) date sales 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))) date sales 1 11/19/2021 9 2 11/18/2021 15 3 11/13/2021 14 4 10/30/2021 3
Notez que nous avons utilisé lubridate pour spécifier la date au format mdy() , mais vous pouvez vous référer à cette aide-mémoire pour voir d’autres formats de date si votre date se trouve dans un format différent.
Ressources additionnelles
Comment extraire l’année à partir de la date dans R
Comment agréger les données quotidiennes en données mensuelles et annuelles dans R
Comment organiser les lignes dans R