Вопрос по r, ggplot2 – Создание огромных файлов данных в R?

8

У меня есть входной файл, который имеет около 20 миллионов строк. Размер файла составляет около 1,2 г. Есть ли в любом случае, я могу построить данные в R. Некоторые столбцы имеют категории, большинство из них являются числами.

Я пробовал свой сценарий черчения с небольшим подмножеством входного файла размером около 800 КБ, но, хотя у меня около 8 ГБ ОЗУ, мне кажется, что я не могу построить все данные. Есть ли простой способ сделать это.

... продолжая в соответствии с ответом @Paul Hiemstra ниже - если вы дадите более подробную информацию о (подмножестве) ваших данных, вы можете получить интересную дискуссию о возможностях визуализации здесь. Также,ggplot может быть медленнее / более требовательным к памяти, чем другие возможности, если вы действительно хотите построить каждую точку. Ben Bolker
Независимо от вычислительных мощностей, которые вам понадобятся, чтобы уменьшить ваши данные с помощью гистограмм, 1-мерных и 2-мерных графиков плотности, шестиугольных графиков, ... Ben Bolker
Что вы надеетесь увидеть на графике с 20 миллионами точек данных? Chase

Ваш Ответ

5   ответов
0

memory.limit(size=2000) (или что-то большее) поможет?

4

я пар переменных, как было предложено Беном Болкером в Ускорение функции plot () для большого набора данных у меня работало 2 миллиона записей честно с 4 ГБ оперативной памяти Но это не удалось для 200 миллионов записей / строк для одного и того же набора переменных. Я попытался уменьшить размер корзины, чтобы скорректировать время вычислений и использование оперативной памяти, но это не помогло.

Для 20 миллионов записей вы можете попробовать начать с шестиугольников с xbins = 20,30,40.

3

png() например) намного быстрее. Я пробовал чертитьrnorm(100000) и на моем ноутбуке X11 каирский сюжет занял 2,723 секунды, аpng устройство завершило работу за 2,001 секунды. с 1 миллионом очков, 27.095 и 19.954 секун

Я использую Fedora Linux, а вот код.

f = function(n){
x = rnorm(n)
y = rnorm(n)
png('test.png')
plot(x, y)
dev.off()}

g = function(n){
x = rnorm(n)
y = rnorm(n)
plot(x, y)}

system.time(f(100000))
system.time(g(100000))
13

какой сюжет вам нужен, трудно дать конкретные предложения. Однако, как правило, нет необходимости строить 20 миллионов точек на сюжете. Например, временные ряды могут быть представлены сплайновым соответствием или каким-то средним значением, например, агрегировать почасовые данные в среднесуточные. В качестве альтернативы вы рисуете некоторое подмножество данных, например, только один пункт в день на примере временных рядов. Поэтому я думаю, что ваша задача состоит не столько в получении 20 миллионов баллов или даже 800 тысяч в сюжете, сколько в том, как эффективно агрегировать ваши данные таким образом, чтобы они передавали сообщение, которое вы хотите сказать.

Выборка данных и повторение процесса несколько раз также покажут шаблоны, скрытые в данных. Roman Luštrik
Я согласен с @ RomanLuštrik, если шаблон повторяется, скажем, для выборок из 10.000 точек, вы знаете, что шаблон является постоянным (то есть стационарным). Если нет, выборка из 10.000 баллов недостаточна. Paul Hiemstra
1

рчения с ggplot почти 36K записей.

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