【发布时间】:2022-02-08 11:16:00
【问题描述】:
任何想法为什么 R 将 2 天添加到 Excel 日期?
详情: 我正在使用代码导入带有 openxlx 的 Excel 文件:
wb.temp <- loadWorkbook(filename)
data.import <- read.xlsx (wb.temp, sheet = 1, startRow = 3, colNames = TRUE, na.strings = "NA", detectDates = FALSE)
(detectDates = TRUE 给出错误,尽管 XLSX 中的所有日期看起来都正常)
xlsx 文件的 Event_Date 字段有一些值“2022-02-07”
- R 将这些日期导入为 44599
但是,当我运行以下 r 代码将这些日期转换为 yyyy-mm-dd 时:
data.import$Event_Date <- as.Date(import.temp$Event_Date, origin = '1900-01-01')
data.import$Event_Date 在输入 44599 时取值为“2022-02-09”
作为检查:
- difftime("2022-02-07","1900-01-01") 产生 44597
那么,为什么 R 在数据导入期间将 Excel 日期添加 2 天?
谢谢
鲍勃
【问题讨论】:
-
应该是
origin = '1899-12-30'。 -
关于 1900 年 2 月 29 日,这是 Excel 的一个已知错误。这一天不存在,但 Excel 存在。此外,在 Excel 中,1900 年 1 月 1 日是第 1 天,而 R 假定它为 0。