Что такое целочисленное переполнение в R и как оно может произойти?

У меня происходит какой-то расчет, и я получаю следующее предупреждение (т.е. не ошибку):

Warning messages:
1: In sum(myvar, na.rm = T) :
Integer overflow - use sum(as.numeric(.))

В этой теме люди утверждают, что целочисленных переполнений просто не бывает. Либо R не слишком современен, либо они не правы. Однако, что я должен делать в этом случае? Если я использую as.numeric, как советует предупреждение, я могу не учесть тот факт, что информация теряется гораздо раньше. myvar считывается из .csv файла, так не должен ли R понять, что нужно какое-то большее поле? Может, оно уже что-то отрезает?

Какова максимальная длина integer или numeric? Может быть, вы посоветуете какой-нибудь другой тип поля / режим?

EDIT: Я запустил:

R версия 2.13.2 (2011-09-30) Платформа: x86_64-apple-darwin9.8.0/x86_64 (64-bit) внутри R Studio

34
задан Community 23 May 2017 в 10:30
поделиться

1 ответ

Если c = a - b переполнение, потому что a и b являются целыми числами, пробует следующее:

c = as.double(a - b)
0
ответ дан 27 November 2019 в 16:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: