Comment convertir une date en numérique dans R (avec des exemples)
Il existe deux méthodes que vous pouvez utiliser pour convertir des valeurs de date en valeurs numériques dans R :
Méthode 1 : utiliser as.numeric()
as.numeric(my_date)
Cela renverra le nombre de secondes écoulées entre votre objet date et le 1/1/1970.
Méthode 2 : utiliser les fonctions du package lubridate
library(lubridate) #get seconds value in date object second(my_date) #get minutes value in date object minute(my_date) ... #get year value in date object year(my_date)
Cela renverra la valeur des secondes, minutes, années, etc. de votre objet date.
Les exemples suivants montrent comment utiliser chaque méthode dans la pratique.
Méthode 1 : utiliser as.numeric()
Le code suivant montre comment convertir un objet date en numérique à l’aide de la fonction as.numeric() :
#create date object
my_date <- as.POSIXct("10/14/2021 5:35:00 PM", format="%m/%d/%Y %H:%M:%S %p")
#view date object
my_date
[1] "2021-10-14 05:35:00 UTC"
#convert date object to number of seconds since 1/1/1970
as.numeric(my_date)
[1] 1634189700
#convert date object to number of days since 1/1/1970
as.numeric(my_date) / 86400
[1] 18914.23
#convert date object to number of years since 1/1/1970
as.numeric(my_date) / 86400 / 365
[1] 51.81982
Sur la base du résultat, nous pouvons voir :
- Il y a une différence de 1 634 189 700 secondes entre notre objet date et le 1/1/1970.
- Il y a une différence de 18 914,23 jours entre notre objet date et le 1/1/1970.
- Il y a une différence de 51,81982 ans entre notre objet date et le 1/1/1970.
Méthode 2 : utiliser les fonctions du package lubridate
Le code suivant montre comment convertir un objet date en numérique à l’aide des fonctions du package lubridate dans R :
library(lubridate)
#create date object
my_date <- as.POSIXct("10/14/2021 5:35:00 PM", format="%m/%d/%Y %H:%M:%S %p")
#view date object
my_date
[1] "2021-10-14 05:35:00 UTC"
#extract various numerical values from date object
second(my_date)
[1] 0
minute(my_date)
[1] 35
hour(my_date)
[1] 5
day(my_date)
[1] 14
month(my_date)
[1] 10
year(my_date)
[1] 2021
En utilisant ces fonctions, nous pouvons extraire les valeurs des secondes, minutes, heures, jours, mois et années de notre objet date.
Reportez-vous à cette aide-mémoire en ligne pour acquérir une compréhension complète des fonctions les plus couramment utilisées dans le package Lubridate.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres conversions courantes dans R :
Comment convertir une chaîne en Datetime dans R
Comment convertir des nombres en dates dans R
Comment trier une trame de données par date dans R