Управление памятью R для больших наборов данных - PullRequest
0 голосов
/ 05 июня 2018

Я довольно новичок в R, и в настоящее время я работаю над набором данных (размер: 2 ГБ).Я сохранил этот набор данных в рабочей области, и всякий раз, когда я загружаю этот набор данных в R, он потребляет более 90% основной памяти и, следовательно, становится трудным и очень трудоемким для выполнения таких операций, как фильтрация, обработка и анализ данных.

Я в основном использую пакет dplyr для фильтрации и формирования подмножеств из основного набора данных, согласно динамическим пользовательским вводам, но получение данных занимает много времени.Я также пытался использовать пакет Bigmemory.Хотя он решает проблемы потребления памяти, он не позволяет функциям пакета dplyr работать с объектами big.matrix.

Так может кто-нибудь сообщить мне, как быстро отфильтровать большие наборы данных с оптимальным потреблением памяти?

Спасибо!

Ответы [ 3 ]

0 голосов
/ 06 июня 2018

Я использовал пакеты data.table и DT.Используя data.table, я создал объект data.table, к которому быстро обращаться и анализировать.И используя пакет DT, я использовал функцию renderDataTable, чтобы быстро получить подробную информацию на информационной панели Shiny.

0 голосов
/ 06 июня 2018

Я использовал пакеты data.table и DT.Используя data.table, я создал объект data.table, к которому можно быстро получить доступ и проанализировать.А с помощью функции renderDataTable из пакета DT я смог быстро отобразить таблицу на информационной панели Shiny.Спасибо всем за вашу помощь!

0 голосов
/ 05 июня 2018

Одним из подходов может быть усечение таблицы до столбцов, необходимых при загрузке.

Пример

sample1 <- read.csv("https://www.sample-videos.com/csv/Sample-Spreadsheet-500000-rows.csv",
                    header=TRUE)

sample2 <- read.csv("https://www.sample-videos.com/csv/Sample-Spreadsheet-500000-rows.csv",
                    header=TRUE)[, c(1, 3, 5)]
> object.size(sample1)
3272064 bytes
> object.size(sample2)
1073240 bytes

Чтобы узнать, какойвыбрать, проконсультироваться с именами, используя

var.names <- names(read.csv("https://www.sample-videos.com/csv/Sample-Spreadsheet-500000-rows.csv",
                    header=TRUE))
> var.names
[1] "Eldon.Base.for.stackable.storage.shelf..platinum"
[2] "Muhammed.MacIntyre"                              
[3] "X3"                                              
[4] "X.213.25"                                        
[5] "X38.94"                                          
[6] "X35"                                             
[7] "Nunavut"                                         
[8] "Storage...Organization"                          
[9] "X0.8" 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...