我试图导入一个非常大的数据,其中包含格式为" 2015-08-31 07:23:25.3"的时间戳。 该表有近2.5mil的行,当我将其导入数据帧时,它会浪费时间。
table1 <- dbReadTable(db_connection, "table_name")
以上是我使用过的代码。 它适用于具有相同格式时间戳的另一个表,并且有800行。
我使用以下代码检查是否隐藏了任何内容......没有运气: - (
unclass(as.POSIXlt(table1$timestamp))
请帮忙!
答案 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>
在Google Summer of Code期间,我是RPostgreSQL项目的原始导师。 Postgresql有 native 日期时间,R也是如此。永远不要将时间导入为字符。如果您正确地对查询进行类型转换,解析问题就会消失。