我一直在跟踪我通过R和RPostgres
库生成的报告中的一些“不可能”数字。该代码正在运行许多数据库查询,其中一些恰巧返回了BIGINT
类型(通过SQL COUNT()
聚合),这些类型默认由RPostgres
解释为integer64
(我将其解释为正在使用bigint="integer"
选项,因为目前我的值都不是> 2 ^ 31)。
我设法得到一个非常小的例子:
i <- bit64::as.integer64(1)
paste(data.frame(a=i))
给我4.94065645841247e-324
,而不是1
。我假设paste()
会将int64
视为double
,但不确定原因。
有什么建议吗?大多想知道这在我的系统上是否很奇怪,是否应该向上游报告。
这是最新的arch-linux系统上的R 3.5.1,并且刚刚更新了所有软件包