Comment extraire le mois de la date dans R (avec exemples)
Il existe deux façons d’extraire rapidement le mois d’une date dans R :
Méthode 1 : utiliser format()
df$month <- format(as.Date(df$date, format="%d/%m/%Y"),"%m")
Méthode 2 : utilisez le package de lubrification
library(lubridate) df$month <- month(mdy(df$date))
Ce didacticiel montre un exemple de la façon d’utiliser chacune de ces méthodes dans la pratique.
Méthode 1 : extraire le mois de la date à l’aide de format()
Le code suivant montre comment extraire le mois d’une date à l’aide de la fonction format() combinée à l’argument « %m » :
#create data frame df <- data.frame(date=c("01/01/2021", "01/04/2021" , "01/09/2021"), sales=c(34, 36, 44)) #view data frame df date sales 1 01/01/2021 34 2 01/04/2021 36 3 01/09/2021 44 #create new variable that contains month df$month <- format(as.Date(df$date, format="%d/%m/%Y"),"%m") #view updated data frame df date sales month 1 01/01/2021 34 01 2 01/04/2021 36 04 3 01/09/2021 44 09
Notez que cette fonction format() fonctionne avec une variété de formats de date. Il faut simplement préciser le format :
#create data frame df <- data.frame(date=c("2021-01-01", "2021-01-04" , "2021-01-09"), sales=c(34, 36, 44)) #view data frame df date sales 1 2021-01-01 34 2 2021-01-04 36 3 2021-01-09 44 #create new variable that contains month df$month<- format(as.Date(df$date, format="%Y-%m-%d"),"%m") #view updated data frame df date sales month 1 2021-01-01 34 01 2 2021-01-04 36 01 3 2021-01-09 44 01
Remarque : Vous pouvez également utiliser %B pour extraire le mois sous forme de nom de chaîne (janvier) au lieu d’une valeur numérique (01).
Méthode 2 : Extraire le mois de la date à l’aide de Lubridate
Nous pouvons également utiliser les fonctions du package lubridate pour extraire rapidement le mois d’une date :
library(lubridate) #create data frame df <- data.frame(date=c("01/01/2021", "01/04/2021" , "01/09/2021"), sales=c(34, 36, 44)) #view data frame df date sales 1 01/01/2021 34 2 01/04/2021 36 3 01/09/2021 44 #create new variable that contains month df$month<- month(mdy(df$date)) #view updated data frame df date sales month 1 01/01/2021 34 1 2 01/04/2021 36 1 3 01/09/2021 44 1
Lubridate fonctionne également avec une variété de formats de date. Il faut simplement préciser le format :
#create data frame df <- data.frame(date=c("2021-01-01", "2021-01-04" , "2021-01-09"), sales=c(34, 36, 44)) #view data frame df date sales 1 2021-01-01 34 2 2021-01-04 36 3 2021-01-09 44 #create new variable that contains month df$month <- month(ymd(df$date)) #view updated data frame df date sales month 1 2021-01-01 34 1 2 2021-01-04 36 1 3 2021-01-09 44 1
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans R :
Comment extraire l’année à partir de la date dans R
Comment calculer le nombre de mois entre les dates dans R