gpt4 book ai didi

r - `as.POSIXct` 与 Excel 的数据差异

转载 作者:行者123 更新时间:2023-12-02 00:44:38 25 4
gpt4 key购买 nike

我的实际数据如下:

8/8/2013 15:10
7/26/2013 10:30
7/11/2013 14:20
3/28/2013 16:15
3/18/2013 15:50

当我从 Excel 文件中读取此内容时,R 将其读取为:

41494.63
41481.44
41466.60
41361.68
41351.66

所以我使用了 as.POSIXct(as.numeric(x[1:5])*86400, origin="1899-12-30",tz="GMT") ,我得到了:

2013-08-08 15:07:12 GMT
2013-07-26 10:33:36 GMT
2013-07-11 14:24:00 GMT
2013-03-28 16:19:12 GMT
2013-03-18 15:50:24 GMT

为什么时间上有差异?如何克服?

最佳答案

问题在于 Excel 的任一 R 将数字四舍五入到小数点后两位。例如,当您使用 8/8/2013 15:10 转换单元格时文本格式(在 Mac OSX 上的 Excel 中),您会得到数字 41494.63194 .

当您使用时:

as.POSIXct(41494.63194*86400, origin="1899-12-30",tz="GMT")

它会给你:

[1] "2013-08-08 15:09:59 GMT"

这与原始日期相差 1 秒(这也表明 41494.63194 四舍五入到小数点后五位)。

可能最好的解决方案是将您的 excel 文件导出到 .csv或制表符分隔 .txt文件,然后将其读入 R。这至少给了我正确的日期:

> df
datum
1 8/8/2013 15:10
2 7/26/2013 10:30
3 7/11/2013 14:20
4 3/28/2013 16:15
5 3/18/2013 15:50

关于r - `as.POSIXct` 与 Excel 的数据差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31647364/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com