Максимальная длина для вектора в R

Согласно документации R ‘Memory-limits’, невозможно выделить вектор длиной более 2 ^ 31-1. Это связано с тем, что целое число, используемое в качестве индекса, может использовать только 31 бит (один бит для знака). Но в 64-битной системе я должен иметь возможность выделять более длинные векторы. Почему R налагает такую ​​же максимальную длину на 64-битные системы? Есть ли способ обойти предел?

Если вы готовы работать с версией разработки R, вы можете получить экспериментальную поддержку этой функции. С http://stat.ethz.ch/R-manual/R-devel/doc/html/NEWS.html :

ДЛИННЫЕ ВЕКТОРЫ

Начали поддержку векторов длиной более 2 ^ 31 – 1 элементов на 64-битных платформах. Это относится к исходным, логическим, целочисленным, двойным, сложным и символьным векторам, а также спискам. (Элементы векторных векторов остаются ограниченными до 2 ^ 31 – 1 байт.)

Все аспекты в настоящее время являются экспериментальными.

То, что можно сделать с такими векторами, в настоящее время несколько ограничено, и большинство операций вернут ошибки «длинные векторы, которые еще не поддерживаются». Они могут быть сериализованными и неэтериализованными, принудительными, идентичными () и object.size () работами и средствами могут быть вычислены. Их длины можно получить и установить по xlength (): вызов length () на длинном векторе вызовет ошибку.

Большинство аспектов индексации доступны. Обычно двузначные индексы могут использоваться для доступа к элементам за пределами 2 ^ 31 – 1.

Пройдите по ссылке, чтобы узнать больше. Я сам не экспериментировал с этим, поэтому я не могу прокомментировать, насколько это практически полезно или нет.

Если вы перейдете на страницу http://developer.r-project.org/R_svnlog_2011http://developer.r-project.org/R_svnlog_2012 ) и найдите «длинные векторы», вы можете получить представление о работе, которая продолжается.

Вот еще несколько деталей, которые будут дополнять ответ Бена. Ограничения, кажется, унаследованы от языков программирования нижнего уровня, используемых для сборки R, особенно (по-видимому) кода FORTRAN. Итак, очевидно, что переход R, чтобы он мог в полной мере использовать 64-битные системы адресации, станет крупным проектом.

Из руководства R-admin :

Даже в 64-битных строках R существуют ограничения на размер объектов R (см. Справку («Ограничения памяти»), некоторые из которых связаны с использованием 32-битных целых чисел (особенно в коде FORTRAN). из R максимальная длина (количество элементов) вектора равна 2 ^ 31-1, около 2 миллиардов, а на 64-битных строках размер выделенного блока памяти ограничен 2 ^ 34-1 байтами (8 ГБ ). Ожидается, что в конечном итоге они будут подняты *, но потребность в объектах с 8 ГБ (когда это было написано в 2011 году) исключительна.

(В руководстве также есть критическая сноска, где я поставил * , отметив, что «этот комментарий был в руководстве с 2005 года». 🙂

  • Есть ли такой «colsd» в R?
  • Извлечение строк для первого вхождения переменной в фрейм данных
  • обнаружена ошибка segfault в R
  • Евклидово расстояние двух векторов
  • Разделить вектор по его последовательностям
  • вставлять кавычки в строку символов, в цикле
  • Как я могу прерывать текущий код в R с помощью команды клавиатуры?
  • Для каждой строки возвращаем имя столбца наибольшего значения
  • Извлечь месяц и год из зоопарка :: объект yearmon
  • Прочтите файл csv в R со столбцом валюты как числовой
  • Создание вектора, разделенного запятыми
  • Interesting Posts

    Текстовое всплывающее окно всплывает над Swing JTextArea?

    Регулярные выражения в приложении Cocoa Objective-C

    Java: ограниченные подстановочные знаки или параметр ограниченного типа?

    Почему функции / объекты внутри анонимного пространства имен имеют внешнюю связь?

    Преобразование значений RGB в Integer

    Я не могу загрузить Ubuntu после установки Windows 7

    Ping каждый IP-адрес в текстовом файле?

    jQuery как найти элемент на основе значения атрибута данных?

    Как получить HTML-контент из WebView (в виде строки)

    Как использовать std :: sort с вектором структур и функцией сравнения?

    Таблица взаимодействий – случай с домашними животными и домами

    PM: изображение спящего режима отсутствует или не может быть загружено

    Как включить ARC для одного файла

    UIWebView: когда страница действительно заканчивала загрузку?

    Как настроить ежедневное резервное копирование с помощью SQL Server Express?

    Давайте будем гением компьютера.