Ограничение размера XTS - PullRequest
2 голосов
/ 29 июня 2010

В последнее время я работаю с большими наборами данных (более 400 тысяч строк).До сих пор я использовал формат XTS, который отлично работал для «маленьких» наборов данных из нескольких десятых тысяч элементов.

Теперь, когда проект растет, R просто падает при получении данных для базы данных и установкеэто в XTS.

Насколько я понимаю, R должен иметь векторы с размером до 2 ^ 32-1 элементов (или 2 ^ 64-1 в зависимости от версии).Следовательно, я пришел к выводу, что XTS может иметь некоторые ограничения, но я не смог найти ответ в документе.(возможно, я был немного уверен в своем понимании теоретического возможного размера вектора).

Подводя итог, я хотел бы знать, если:

  1. XTS действительно имеет ограничение размера
  2. Какой, на ваш взгляд, самый умный способ обработки больших временных рядов?(Я думал о том, чтобы разбить анализ на несколько меньших наборов данных.)
  3. Я не получаю сообщение об ошибке, R просто выключается автоматически.Это известное поведение?

РЕШЕНИЕ

  1. То же, что и R, и зависит от типа используемой памяти (64 бита, 32 бита)).В любом случае он очень велик.
  2. Данные о фрагментации действительно хорошая идея, но она не нужна.
  3. Эта проблема возникла из-за ошибки в R 2.11.0, котораябыло решено в R 2.11.1 .Возникла проблема с вектором длинных дат (здесь индексы XTS).

1 Ответ

5 голосов
/ 29 июня 2010

Что касается ваших двух вопросов, мои $ 0,02:

  1. Да, существует ограничение в 2 ^ 32-1 элементов для R векторов.Это происходит из-за логики индексации, которая, как сообщается, находится достаточно глубоко в R, и вряд ли она будет вскоре заменена (так как это повлияет на существующий код).Для получения подробной информации от Google список r-devel;это уже дошло.Пакет xts не накладывает дополнительного ограничения.

  2. Да, разбиение элементов на управляемые куски - самый разумный подход.Раньше я делал это на больших наборах данных, когда работал исключительно с 32-битными версиями R. Теперь я использую 64-битную версию R, и у меня больше нет этой проблемы (и / или я не использую мои наборы данных),

Существуют некоторые подходы с нехваткой памяти, но сначала я бы попытался переосмыслить проблему и подтвердить, что вам действительно нужны все 400 тыс. Строк одновременно.

...