Большое слияние / управление памятью

Я уперся в стену, пытаясь объединить большой файл и меньшего размера.Я прочитал много других сообщений об управлении памятью в R и не смог найти неэкстремальный (переход на 64-битную версию, загрузка в кластер и т. Д.) Метод решения этой проблемы. Я немного пробовал использовать пакет bigmemory, но не смог найти решения. Я подумал, что попробую здесь, прежде чем в отчаянии вскинул руки.

Код, который я использую, выглядит следующим образом:

#rm(list=ls())
localtempdir<- "F:/Temp/"
memory.limit(size=4095)
[1] 4095
    memory.size(max=TRUE)
[1] 487.56
gc()
         used (Mb) gc trigger  (Mb) max used  (Mb)
Ncells 170485  4.6     350000   9.4   350000   9.4
Vcells 102975  0.8   52633376 401.6 62529185 477.1

client_daily<-read.csv(paste(localtempdir,"client_daily.csv",sep=""),header=TRUE)
object.size(client_daily)
>130MB

sbp_demos<-read.csv(paste(localtempdir,"sbp_demos",sep=""))
object.size(demos)
>0.16MB
client_daily<-merge(client_daily,sbp_demos,by.x="OBID",by.y="OBID",all.x=TRUE)
Error: cannot allocate vector of size 5.0 MB

Думаю, я спрашиваю, есть ли какие-нибудь хитрые способы обойти это, не требующие покупки нового оборудования?

  1. Мне нужно иметь возможность объединить , чтобы создать более крупный объект.
  2. Затем мне нужно будет выполнить регрессию и т. Д. С этим большим объектом.

Я должен сдаться? Может ли bigmemory помочь решить эту проблему?

Приветствуются любые указания.

Подробности: R версия 2.13.1 (2011-07-08) Платформа: i386-pc-mingw32 / i386 (32-разрядная версия) Intel 2 Duo Core @ 2,33 ГГц, 3,48 ГБ ОЗУ

6
задан Matt Dowle 22 December 2011 в 09:21
поделиться