[R] array of variable length vectors

Barry Rowlingson B.Rowlingson at lancaster.ac.uk
Mon Feb 2 12:22:09 CET 2004


Giampiero Salvi wrote:
> Hi,
> I'd like to store N vectors of different lengths, and to be able to
> access them with an index, and eventually free the memory for one
> of them without modifying the indexes to the others.

> int *pv[3];
> 
> pv[0] = (int *) malloc(13 * sizeof(int));
> pv[1] = (int *) malloc(7 * sizeof(int));
> pv[2] = (int *) malloc(110 * sizeof(int));
> 
> free(pv[1])
> ...
> 
> What is the best data type (or class) in R to do such a thing?

  A list, with vector elements (index starts at 1 in R):

  pv = list()
  pv[[1]] = real(13)
  pv[[2]] = real(7)
  pv[[3]] = real(110)

  then the equivalent of freeing the memory and keeping the indexing 
would be:

  pv[[2]] = real(0)

  and NOT

  pv[[2]] = NULL  (which deletes element 2)

  *BUT* I dont know if R will really free() the memory at that point. 
You may need to force the garbage collection with gc()....

Baz




More information about the R-help mailing list