RPostgreSQL - 将大表导入R而不会丢失数据

时间:2017-02-13 01:42:50

标签: r postgresql time rpostgresql

我试图导入一个非常大的数据,其中包含格式为" 2015-08-31 07:23:25.3"的时间戳。 该表有近2.5mil的行,当我将其导入数据帧时,它会浪费时间。

table1 <- dbReadTable(db_connection, "table_name")

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

我使用以下代码检查是否隐藏了任何内容......没有运气: - (

unclass(as.POSIXlt(table1$timestamp))

请帮忙!

1 个答案:

答案 0 :(得分: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有 native 日期时间,R也是如此。永远不要将时间导入为字符。如果您正确地对查询进行类型转换,解析问题就会消失。

相关问题