当我尝试使用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
该类是数字。因此,这些数字应与上面的日期相对应。如何将数字数据转换回日期和时间?
数据样本是:
a <- c(42005.02083,42005.04167,42005.06250,42005.08333,42005.10417,42005.12500,42005.14583,42005.16667,42005.18750,42005.20833)
答案 0 :(得分:3)
它们是自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"
获取预期结果(默认情况下在本地时区),除了与保存和重新加载时丢失准确性相关的一些非常小的舍入错误。