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

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *