web-dev-qa-db-fra.com

Comment convertir le format de date Excel en date correcte avec Lubridate

Je travaille avec un csv qui, malheureusement, a consigné les dates et les heures en utilisant le format numérique de 42705, alors que cela devrait être le 01/12/2016.

Je voudrais le convertir au bon format en R en utilisant Lubridate ou un autre paquet. Y a-t-il une fonction qui le gérera?

33
elksie5000

Vous n'avez pas besoin d'utiliser lubridate pour cela, la fonction de base as.Date gère bien ce type de conversion. Le truc est que vous devez fournir l’origine, qui dans Excel est le 30 décembre 1899.

as.Date(42705, Origin = "1899-12-30")
# [1] "2016-12-01"

Si vous voulez conserver vos types de colonnes, vous pouvez essayer d’utiliser le read_Excel fonction du package readxl. Cela vous permet de charger un fichier XLS ou XLSX avec la mise en forme numérique conservée.

56
Andrew Brēza

Voici une autre façon de le faire en utilisant les paquets janitor et tibble:

install.packages("janitor")
install.packages("tibble")

library(tibble)
library(janitor)

Excel_numeric_to_date(as.numeric(as.character(YourDate)), date_system = "modern")    
10
Reza Rahimi