我检索包含从数据的基础上大整数成R(使用RJDBCs dbGetQuery方法)的柱。 为测试条件下,可以考虑以下号码
1000522010609612
1000522010609613
1000522010609614
1000522010609615
1000522010609616
1000522010609617
**971000522010609612
1501000522010819466
971000522010943717
1501000522010733490**
[R似乎被错误地阅读内容。 其中,它是提供给我的R(后我使用RJDBC数据库中读取)的方法是:
1000522010609612
1000522010609613
1000522010609614
1000522010609615
1000522010609616
1000522010609617
**971000522010609664
1501000522010819584
971000522010943744
1501000522010733568**
看到最后4个数字。 他们错了! 这似乎是自动将数据转换成数据帧(这是很好的 - 但)有损坏的数字(bigints)。 关于我们如何当我们使用dbGetQuery使用RJDBC包特别解决上述问题的任何建议?
您的数据读入作为浮点数:
DF <- read.table(text="1000522010609612
1000522010609613
1000522010609614
1000522010609615
1000522010609616
1000522010609617
971000522010609612
1501000522010819466
971000522010943717
1501000522010733490")
class(DF[,1])
#[1] "numeric"
sprintf("%20f", DF[10, 1])
#[1] "1501000522010733568.000000"
你可以把它读作串并转换为大整数或直接作为大整数阅读:
library(bit64)
DF <- read.table(text="1000522010609612
1000522010609613
1000522010609614
1000522010609615
1000522010609616
1000522010609617
971000522010609612
1501000522010819466
971000522010943717
1501000522010733490", colClasses = "integer64")
# V1
#1 1000522010609612
#2 1000522010609613
#3 1000522010609614
#4 1000522010609615
#5 1000522010609616
#6 1000522010609617
#7 971000522010609612
#8 1501000522010819466
#9 971000522010943717
#10 1501000522010733490
我不能帮你与你的数据库应用程序,但这应该为您解决问题的起点。