R openxlsx read.xlsx 日期时间有问题

R openxlsx read.xlsx having issues with datetime

这个问题似乎已经被问过很多次了——没有一个有用的解决办法——所以我再试一次。

我的 excel 数据时间列的格式为:"MM/DD/YY HH:MM"

我正在使用以下代码读取文件:

datai <- read.xlsx(xlsxFile= file.path(work_dir,"..", "Databases", study, subfolder, file),
                        sheet = "Monitoring Data", detectDates = FALSE, check.names = TRUE, 
                        na.strings = "NA", fillMergedCells = FALSE, cols = 1:27)

datai$Time.Stamp..mm.dd.yy.hh.mm.<- convertToDateTime(datai$Time.Stamp..mm.dd.yy.hh.mm.)

使用这样的代码,日期导入正确,但时间不导入。

而且我已经尝试使用 detectDates = TRUE,这给了我一个无法辨认的结果。 例如,前 5 个日期应读作

"12/1/15 0:00", "12/1/15 1:00", "12/1/15 2:00", "12/1/15 0:00", "12/1/15 3:00", "12/1/15 4:00" 

但他们读为

 "2015-12-01" "4233-01-16" "4233-02-02" "4233-02-18" "4233-03-07" 

我也试过添加

  data <-  read.xlsx(xlsxFile= file.path(work_dir,"..", "Databases", study, subfolder, file), 
                     startRow = 1,sheet = "Monitoring Data", detectDates = TRUE, check.names = TRUE, colNames = TRUE,
                     rowNames = FALSE, skipEmptyRows = TRUE, skipEmptyCols = TRUE, rows = NULL, sep.names = ".",
                     na.strings = "NA", fillMergedCells = FALSE, cols = 1:27, 
                     getOption("openxlsx.datetimeFormat", "mm/dd/yyyy hh:mm"))

但是得到这个错误: Region 'mm/dd/yyyy hh:mm' not found!

根据其他问题的答案,大多数人建议切换到 readxl::read_excel - 这确实有效,但打开文件需要花费大量时间。有没有人对尝试让 read.xlsx 正确读取日期有什么想法?

我的 excel 数据的片段:

如果时间戳是数字,您可以手动转换它,例如使用包 datetimeutils 中的函数 convert_date (我维护):

library("datetimeutils") 
x <- 44038.8394469843
convert_date(x, type = "excel", fraction = TRUE)
## [1] "2020-07-26 20:08:48 CEST"

如果您需要特定时区,您也可以指定:

convert_date(x, type = "excel", fraction = TRUE, tz = "America/New_York")
## [1] "2020-07-26 20:08:48 EDT"