使用适合数值计算的日期/时间类,也可以作为合并的关键

hat*_*rix 5 datetime r

我正在处理一些昼夜时间序列,其中时间必须表示为几分钟.

在各种工具中,一些日期/时间类从epoch开始表示为整数(例如,R的POSIX类,Python/Numpy); 其他的是自纪元以来的分数天(例如,R的chron包,也是Matlab).

似乎整数表示允许您执行数值计算(求和,差异),但ALSO提供了一种通过它们进行合并/匹配的方法,而对于那些由小数天(浮点数)表示的那些更难以按时间合并/匹配.

这更像是一个概念性的问题,但是有一个很好的理由使用小数天或花车进行时间表示吗?对于R,奇怪的是,甚至POSIX类都是数字而不是整数.

> (p <- as.POSIXct("2011-01-01"))
[1] "2011-01-01 CST"
> (unclass(p <- as.POSIXct("2011-01-01")))
[1] 1293861600
attr(,"tzone")
[1] ""
> class(unclass(p <- as.POSIXct("2011-01-01")))
[1] "numeric"
Run Code Online (Sandbox Code Playgroud)

这是因为R的早期整数存储限制?或者使用浮点表示还有其他一些优势吗?要合并我将我的日期/时间对象转换为格式化的字符串,但这是规范的方式(我最常使用chronR中的包)?

Hon*_*Ooi 3

POSIXct是数字,因为它提供 53 位精度,而不是 4 字节整数的 32 位。R 在上世纪下半叶主要是在 32 位平台上开发的,使用整数会使其容易受到 2038 年问题的影响。现在 64 位整数已经可用,这本来是一个更好的选择,但我们现在只能使用 53 位。大约在这一年。285420000 当这将成为一个问题时,我们可以重新审视它。