问题
I\'m working with a csv which unfortunately has logged datetimes using the number format of 42705 although it should be 01/12/2016.
I\'d like to convert it to the right format in R using Lubridate or some other package. Is there a function that will handle it?
回答1:
You don't need to use lubridate for this, the base function as.Date handles this type of conversion nicely. The trick is that you have to provide the origin, which in Excel is December 30, 1899.
as.Date(42705, origin = "1899-12-30")
# [1] "2016-12-01"
If you want to preserve your column types, you can try using the read_excel function from the readxl package. That lets you load an XLS or XLSX file with the number formatting preserved.
回答2:
Here is another way to do it using janitor and tibble packages:
install.packages("janitor")
install.packages("tibble")
library(tibble)
library(janitor)
excel_numeric_to_date(as.numeric(as.character(YourDate)), date_system = "modern")
来源:https://stackoverflow.com/questions/43230470/how-to-convert-excel-date-format-to-proper-date-with-lubridate