Excel时间未总是正确转换

问题描述 投票:1回答:1

我正在从导入日期时间值,并且在中的中进行转换时,某些结果很好,而其他结果是错误的。这是我的原始数据(来自excel):

         time excel
1   43033.35662037037
2   43033.35662037037
3   43033.35662037037
4   43033.35662037037
5   43033.35663194444
6   43033.35663194444
7   43033.35663194444
8   43033.35663194444
9   43033.35664351852
10  43033.35664351852
11  43033.35664351852
12  43033.35664351852
13  43033.35665509259
14  43033.35665509259
15  43033.35665509259
16  43033.35665509259
17  43033.35666666667
18  43033.35666666667
19  43033.35666666667
20  43033.35666666667
21  43033.35667824074

这是我的代码:

raw_time$`time excel` = as.numeric(raw_time$`time excel`)
r_time <- data.frame(as.Date(raw_time$`time excel`, origin = "1899-12-30"))
colnames(r_time)<-"time R"
r_time$`time R` <- as.POSIXct(r_time$`time R` , format =  "%d.%m.%Y %H:%M:%OS6")

这就是我得到的:

        time excel                   time R

1   43033.35662037037   2017-10-25 10:33:32
2   43033.35662037037   2017-10-25 10:33:32
3   43033.35662037037   2017-10-25 10:33:32
4   43033.35662037037   2017-10-25 10:33:32
5   43033.35663194444   2017-10-25 10:33:33
6   43033.35663194444   2017-10-25 10:33:33
7   43033.35663194444   2017-10-25 10:33:33
8   43033.35663194444   2017-10-25 10:33:33
9   43033.35664351852   2017-10-25 10:33:34
10  43033.35664351852   2017-10-25 10:33:34
11  43033.35664351852   2017-10-25 10:33:34
12  43033.35664351852   2017-10-25 10:33:34
13  43033.35665509259   2017-10-25 10:33:34
14  43033.35665509259   2017-10-25 10:33:34
15  43033.35665509259   2017-10-25 10:33:34
16  43033.35665509259   2017-10-25 10:33:34
17  43033.35666666667   2017-10-25 10:33:36
18  43033.35666666667   2017-10-25 10:33:36
19  43033.35666666667   2017-10-25 10:33:36
20  43033.35666666667   2017-10-25 10:33:36
21  43033.35667824074   2017-10-25 10:33:37

如您所见,我得到4倍32英寸(什么是正确的),4倍是33英寸,这也是正确的,但是随后我得到了8倍34英寸的错误(检查excel的原始值)。

我做错了什么?感谢您的帮助...

r excel datetime import posixct
1个回答
1
投票

我认为当您转换为日期时,会失去精度。通过将天数转换为秒数并使用as.POSIXct,可以直接从excel日期更改为日期时间。

df$Time_R <- as.POSIXct(df$time_excel * 60 * 60 * 24, origin="1899-12-30")
© www.soinside.com 2019 - 2024. All rights reserved.