[R] another memory size question
Prof Brian Ripley
ripley at stats.ox.ac.uk
Fri Apr 14 10:11:44 CEST 2006
On Fri, 14 Apr 2006, Alexander Nervedi wrote:
> Hi.
>
> I am having trouble figuring this out. Please help if you know what I am
> goffing up on.
>
>> rm(list=ls(all=TRUE))
>> dat<-expand.grid(village.code = c(1,2,3), household.id = 1:99, member.id =
>> 1:41, year.code = 75:85, DOI = 1:366)
> Error: cannot allocate vector of size 191502 Kb
>>
>> memory.limit()
> [1] 3145728000
>
>
> Shouldn't I have ample memory to greate this gigantic grid?
No. It has 3*99*41*11*366 = 50m rows, and 5 columns needing 24 bytes per
row (1 double plus 4 integer cols, I believe), plus rowmanes. Now
normally rownames are a character vector, and a character vector of that
size needs over 2Gb of storage (on a 32-bit machine), but expand.grid
`cheats' (actually, it is a bug) by using integer rownames and hence you
would have 28 bytes per row, 1.4GB in total. You do have enough memory to
store that, but not enough address space.
BTW, you seem to be on Windows (but failed to mention it): please consult
the rw-FAQ as the memory limit is not necessarily the limiting factor
here (the address space is probably 2GB).
> mucho gracias el signors and signioritas,
>
> Alnerdy
--
Brian D. Ripley, ripley at stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
More information about the R-help
mailing list