Проблемы с преобразованием длинного списка data.frames (~1 миллион) в один data.frame с использованием do.call и ldply

Я знаю, что здесь в SO много вопросов о способах преобразования списка data.frames в один data.frame с использованием do.call или ldply, но эти вопросы касаются понимания внутренней работы обоих методов и попытки выяснить, почему я не могу заставить работать ни один из них для объединения списка из почти 1 миллиона df одной и той же структуры, одинаковые имена полей и т. д. в один data.frame. Каждый data.frame состоит из одной строки и 21 столбца.

Данные начинались как файл JSON, который я преобразовал в списки, используя fromJSON, затем запустил еще один алгоритм, чтобы извлечь часть списка и преобразовать в data.frame, и в итоге получил список data.frames.

Я пробовал:

df <- do.call("rbind", list)
df <- ldply(list)

но мне пришлось убить процесс после того, как он проработал до 3 часов и ничего не получил.

Есть ли более эффективный способ сделать это? Как я могу устранить неполадки, что происходит и почему это занимает так много времени?

Для справки: я использую сервер RStudio на четырехъядерном сервере емкостью 72 ГБ с RHEL, поэтому не думаю, что проблема в памяти. sessionInfo ниже:

> sessionInfo()
R version 2.14.1 (2011-12-22)
Platform: x86_64-redhat-linux-gnu (64-bit)

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
 [7] LC_PAPER=C                 LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] multicore_0.1-7 plyr_1.7.1      rjson_0.2.6    

loaded via a namespace (and not attached):
[1] tools_2.14.1
> 
25
задан Matt Dowle 6 September 2012 в 12:40
поделиться