使用 openxlsx 从 xlsx 文件读取日期后将数字转换为日期和时间
Convert numeric to date & time after reading date from xlsx file using openxlsx
当我尝试使用 openxlsx 从 xlsx 文件读取日期时遇到问题。我已经尝试过 xlsx 和 xlconnect 包,但是它们在我的电脑上 Java 都有问题,所以我使用 openxlsx.
我的日期数据是这样的:
1/01/2015 0:30
1/01/2015 1:00
1/01/2015 1:30
1/01/2015 2:00
1/01/2015 2:30
1/01/2015 3:00
1/01/2015 3:30
1/01/2015 4:00
1/01/2015 4:30
1/01/2015 5:00
我用下面的代码读取数据:
a <- read.xlsx(paste0(myPath,"try/",myFileNameList[i]),startRow = 2,sheet = 1)
然后,我将数据保存为 csv 文件。在此 csv 文件中,日期如下所示:
42005.02083
42005.04167
42005.0625
42005.08333
42005.10417
42005.125
42005.14583
42005.16667
42005.1875
42005.20833
class 是数字。所以,这些数字应该对应于上面的日期。如何将数字数据转换回日期和时间?
数据样本为:
a <- c(42005.02083,42005.04167,42005.06250,42005.08333,42005.10417,42005.12500,42005.14583,42005.16667,42005.18750,42005.20833)
它们是自 1899-12-30 以来的天数和小数天数:
as.POSIXct("1899-12-30") + as.difftime(a, units="days")
# [1] "2015-01-01 00:29:59 AEST" "2015-01-01 01:00:00 AEST" "2015-01-01 01:30:00 AEST"
# [4] "2015-01-01 01:59:59 AEST" "2015-01-01 02:30:00 AEST" "2015-01-01 03:00:00 AEST"
# [7] "2015-01-01 03:29:59 AEST" "2015-01-01 04:00:00 AEST" "2015-01-01 04:30:00 AEST"
#[10] "2015-01-01 04:59:59 AEST"
获得预期结果(默认情况下在您当地的时区),除了一些非常小的舍入误差与保存和重新加载时的准确性损失相关。
当我尝试使用 openxlsx 从 xlsx 文件读取日期时遇到问题。我已经尝试过 xlsx 和 xlconnect 包,但是它们在我的电脑上 Java 都有问题,所以我使用 openxlsx.
我的日期数据是这样的:
1/01/2015 0:30
1/01/2015 1:00
1/01/2015 1:30
1/01/2015 2:00
1/01/2015 2:30
1/01/2015 3:00
1/01/2015 3:30
1/01/2015 4:00
1/01/2015 4:30
1/01/2015 5:00
我用下面的代码读取数据:
a <- read.xlsx(paste0(myPath,"try/",myFileNameList[i]),startRow = 2,sheet = 1)
然后,我将数据保存为 csv 文件。在此 csv 文件中,日期如下所示:
42005.02083
42005.04167
42005.0625
42005.08333
42005.10417
42005.125
42005.14583
42005.16667
42005.1875
42005.20833
class 是数字。所以,这些数字应该对应于上面的日期。如何将数字数据转换回日期和时间?
数据样本为:
a <- c(42005.02083,42005.04167,42005.06250,42005.08333,42005.10417,42005.12500,42005.14583,42005.16667,42005.18750,42005.20833)
它们是自 1899-12-30 以来的天数和小数天数:
as.POSIXct("1899-12-30") + as.difftime(a, units="days")
# [1] "2015-01-01 00:29:59 AEST" "2015-01-01 01:00:00 AEST" "2015-01-01 01:30:00 AEST"
# [4] "2015-01-01 01:59:59 AEST" "2015-01-01 02:30:00 AEST" "2015-01-01 03:00:00 AEST"
# [7] "2015-01-01 03:29:59 AEST" "2015-01-01 04:00:00 AEST" "2015-01-01 04:30:00 AEST"
#[10] "2015-01-01 04:59:59 AEST"
获得预期结果(默认情况下在您当地的时区),除了一些非常小的舍入误差与保存和重新加载时的准确性损失相关。