Вы можете ответить на многие ваши вопросы, прочитав страницу справки ?integer
.В нем говорится:
R использует 32-разрядные целые числа для целочисленных векторов, поэтому диапазон представляемых целых чисел ограничен примерно +/- 2 * 10 ^ 9.
R Core рассматривает расширение до больших целых чисел, но в ближайшее время этого не произойдет.
Если вам нужна емкость "bignum", установите пакет Rmpfr Мартина Мачлера [PDF].Я рекомендую пакет 'Rmpfr' из-за репутации его автора.Мартин Мачлер также активно участвует в разработке пакетов Matrix и в R Core.Существуют альтернативы, включая арифметические пакеты, такие как «gmp», «Brobdingnag» и «Ryacas» (последний также предлагает символический математический интерфейс).
Далее, чтобы ответить на критические комментарии в ответе, который высвязана с тем, как оценить актуальность вашей работы, и рассмотрите следующее: если бы на одном из этих «современных» языков была доступна та же статистическая функциональность, что и на R, вы, вероятно, заметили бы миграцию пользователей в этом направлении.Но я бы сказал, что в настоящий момент миграция и, конечно, рост находятся в направлении R.R был построен статистиками для статистики.
Когда-то существовал вариант Lisp с пакетом статистики, Xlisp-Stat, но его основной разработчик и сторонник теперь является членом R-Core.С другой стороны, один из первых разработчиков R, Росс Ихака, предлагает работать над развитием на Lisp-подобном языке [PDF].Существует скомпилированный язык под названием Clojure (произносится как говорящие на английском языке говорят «закрытие») с экспериментальным интерфейсом, Rincanter.
Обновление:
В новых версиях R (3.0. +) Есть53-битные целые числа (используя numeric
мантиссу).Когда элементу вектора «целое число» присваивается значение, превышающее «.Machine $ integer.max», весь вектор приводится к «числовому», то есть «двойному».Максимальное значение для integers
остается таким же, каким оно было, однако может быть приведение целочисленных векторов к двойным значениям для сохранения точности в случаях, которые ранее вызывали переполнение.К сожалению, длина списков, размеров матрицы и массива, а также векторов по-прежнему установлена на integer.max
.
При чтении больших значений из файлов, вероятно, безопаснее использовать символьный класс в качестве цели, а затемманипулировать.Если есть принуждение к значениям NA, будет предупреждение.