0

我正在尝试导入一个非常大的数据,其中包括格式为“2015-08-31 07:23:25.3”的时间戳 该表有近 250 万行,当我将其导入数据框时,它会浪费时间。

table1 <- dbReadTable(db_connection, "table_name")

以上是我使用的代码。它适用于另一个具有相同格式时间戳并且有 800 行的表。

我已经使用以下代码来检查是否隐藏了任何东西......没有运气:-(

unclass(as.POSIXlt(table1$timestamp))

请帮忙!

4

1 回答 1

1

考虑一下:

R> library(anytime)
R> anytime("2015-08-31 07:23:25.3")
[1] "2015-08-31 07:23:25.2 CDT"
R> 

标准舍入误差在数字数据(如日期)上并不罕见。但是你很可能会犯两个错误:

显示精度不是存储精度

见证这一点:

R> options("digits.secs"=0); Sys.time()
[1] "2017-02-12 19:47:49 CST"
R> options("digits.secs"=6); Sys.time()
[1] "2017-02-12 19:47:53.378328 CST"
R> 

R 的时间总是大约为微秒精度,但您的默认显示可能会抑制亚秒级。他们总是在那里:

R> now <- Sys.time()
R> now - trunc(now)
Time difference of 0.722091 secs
R> 

从 Postgresql 导入错误

在 Google Summer of Code 期间,我是 RPostgreSQL 项目的最初导师。Postgresql 有本地日期时间,R 也有。永远不要将时间作为字符导入。如果您正确键入查询,解析问题就会消失。

于 2017-02-13T01:50:28.777 回答