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

Ajouter un commentaire

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