Подтвердить что ты не робот

Как я могу сказать, когда мой набор данных в R будет слишком большим?

Я собираюсь провести некоторые анализы журналов в R (если только я не могу сделать это в R), и я понимаю, что мои данные должны соответствовать ОЗУ (если я не использую какое-то исправление, подобное интерфейсу keyval store, может быть?). Поэтому мне интересно, как рассказать заранее, сколько комнат мои данные будут занимать в ОЗУ, и будет ли у меня достаточно. Я знаю, сколько оперативной памяти у меня (не огромная сумма - 3 ГБ в XP), и я знаю, сколько строк и столбцов мой лог файл будет в конечном итоге, и какие типы данных должны содержать записи col (которые, по-видимому, мне нужно проверить как он читает).

Как мне собрать это вместе в решение go/nogo для проведения анализа в R? (Предположительно, R должен иметь возможность оперативной работы с ОЗУ, а также для хранения данных!). Мой немедленный требуемый вывод представляет собой кучу простых статистических данных, частот, непредвиденных ситуаций и т.д., И поэтому я, вероятно, мог бы написать какую-то парсер/табулятор, который даст мне результат, который мне нужен в краткосрочной перспективе, но я также хочу поиграть с множеством различных подходов к этим данным в качестве следующего шага, поэтому я рассматриваю возможность использования R.

Я видел много полезных советов о больших наборах данных в R здесь, которые я прочитал и перечитаю, но сейчас я хотел бы лучше понять, как выяснить, должен ли я (а) идти туда вообще ( б) пойдите туда, но ожидайте, что вам придется сделать некоторые дополнительные вещи, чтобы сделать его управляемым, или (c) убежать до того, как он станет слишком поздно, и сделать что-то на другом языке/среде (предложения приветствуются...!). спасибо!

4b9b3361

Ответ 1

R хорошо подходит для больших наборов данных, либо используя готовые решения, например bigmemory, либо ff package ( особенно read.csv.ffdf) или обрабатывать ваши вещи в кусках, используя ваши собственные скрипты. Практически во всех случаях небольшое программирование делает обработку больших наборов данных ( → память, скажем, 100 Гб) очень возможной. Выполнение такого программирования самостоятельно занимает некоторое время, чтобы учиться (я не знаю вашего уровня), но делает вас действительно гибким. Если это ваша чашка чая или если вам нужно бежать, это зависит от времени, которое вы хотите инвестировать в изучение этих навыков. Но как только вы их получите, они значительно упростят вашу жизнь как аналитик данных.

Что касается анализа лог файлов, я знаю, что страницы статистики, созданные из Call of Duty 4 (компьютерная многопользовательская игра), работают путем анализа файла журнала итеративно в базе данных, а затем получения статистики по пользователю из базы данных. См. здесь для примера интерфейса. Итеративный (в кусках) подход означает, что размер файла журнала (почти) неограничен. Однако получение хорошей производительности не является тривиальным.

Много вещей, которые вы можете сделать в R, вы можете сделать в Python или Matlab, даже С++ или Fortran. Но только если у этого инструмента есть готовая поддержка того, что вы хотите, я мог бы видеть явное преимущество этого инструмента над R. Для обработки больших данных см. Просмотр задачи HPC. См. Также более ранний ответ min для чтения очень большого текстового файла в кусках. Другие связанные ссылки, которые могут быть вам интересны:

Что касается выбора R или какого-либо другого инструмента, я бы сказал, если он достаточно хорош для Google, это достаточно для меня;).