Я отслеживал некоторые «невозможные» числа в отчете, который я генерировал через 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
, но не уверен, почему.
какие-либо предложения?в основном интересно, не странно ли это в моей системе, и должен ли я сообщать об этом в апстриме.
это R 3.5.1 в современной системе arch-linux, и только что обновил все пакеты