r - 如何在 R 中加载微秒精度时间序列?

标签 r time-series

我需要从纪元以来的微秒值加载 POSIXlt 变量。有没有更好的方法来做到这一点:

options(digits.secs=6)
mytime=1366039619645990
as.POSIXlt(mytime %/% 1e6, tz="EST", origin="1970-01-01") + (mytime %% 1e6)/1e6
[1] "2013-04-15 10:26:59.64598 EST"

考虑到我有数百万条记录要加载,这似乎有点复杂。

最佳答案

模除法可能会产生一些舍入误差(我在我的系统上发现了这一点)。添加一小部分时间,时间最大精度的一半应该修复这个问题,尽管本质上它与您已经在做的事情没有什么不同:

as.POSIXlt( mytime/1e6 , tz="EST", origin="1970-01-01") + 5e-7
[1] "2013-04-15 10:26:59.64599 EST"

对比一下:

mytime=1366039619646000

# Produces rounding error
as.POSIXlt(mytime/1000000, tz="EST", origin="1970-01-01") + (mytime %% mytime)/1000000
[1] "2013-04-15 10:26:59.645 EST"

as.POSIXlt( mytime/1e6 , tz="EST", origin="1970-01-01") + 5e-7
[1] "2013-04-15 10:26:59.646 EST"

什么时候

mytime=1366039619645991
as.POSIXlt(mytime/1000000, tz="EST", origin="1970-01-01") + 5e-7
[1] "2013-04-15 10:26:59.645991 EST"

关于r - 如何在 R 中加载微秒精度时间序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16179104/

相关文章:

r - 在 R 中使用 pandoc 时如何强调列名(标题)

time-series - 我可以将时间序列数据存储在数据仓库中吗?

python - 使用日期索引从 pandas DataFrame 计算 3 个月的滚动中位数

python - Statsmodels:使用 ARIMA 实现直接和递归的多步预测策略

python - 在 Pandas 多索引中选择日期范围的正确方法是什么?

r - 如何使用 stat_contour 完全填充轮廓

r - 基于重复行更新列

r - 如何避免每次运行 R 脚本时都打印它?

r - 使用函数从数据框中过滤或选择行的正确语法

r - 如何使用循环在多个站点上执行 Mann-kendall 测试?