将数字转换回 R 中的 Date 对象

Converting numbers back to Date object in R

我正在使用函数 readxl::read_excel() 读取 Excel 文件,但似乎没有正确读取日期。

在原始文件中,一个这样的日期是 2020-JUL-13,但它被读取为 44025

有没有办法恢复原始文件中的原始日期变量?

非常感谢任何指点。

谢谢,

您可以使用 openxlsx 包将数字转换为日期,如

library(openxlsx)

convertToDate("44025")

或者要转换整列,您可以使用

convertToDate(df$date)

基本上,您可以尝试使用:

as.Date(44025)

但是,您会注意到错误 Error in as.Date.numeric(44025) : 'origin' must be supplied。这意味着您所需要的只是知道来源,即开始计数的开始日期。当你查看 Bappa Das 提到的 convertToDate 函数的帮助页面时,你会看到它只是 as.Date() 函数的包装器,origin 参数的默认参数是 "1900-01-01".

接下来,您可以通过在 Excel 中查找日期系统来检查这是为什么,这里是一个页面:

Date systems in Excel

哪里有信息表明Windows(Mac有一些例外)开始日期确实是"1900-01-01"

现在,最后,如果你想使用 base R,你可以这样做:

as.Date(44025, origin = "1900-01-01")

这是向量化函数,因此您也可以传递整列。