[R] How to insert a vector or matrix into an existing matrix

David Winsemius dwinsemius at comcast.net
Mon Apr 21 14:50:08 CEST 2008


Gabor Csardi <csardi at rmki.kfki.hu> wrote in
news:20080421071002.GA16849 at localdomain: 

> On Sun, Apr 20, 2008 at 08:16:11PM +0000, David Winsemius wrote:
>> Gabor Csardi <csardi at rmki.kfki.hu> wrote in
>> news:20080420133926.GA28167 at localdomain: 
>> 
>> > Hmm, my understanding is different,
>> > 
>> > m <- matrix(sample(10*10), ncol=10)
>> > m2 <- rbind( m[1:5,], 1:10, m[6:10,] )
>> > m3 <- cbind( m[,1:8], 1:10, m[,9:10] )
>> 
>> I read the question the same way and, in response to the part of
>> the question asking for no temporary matrix, offer this refinement
>> on your suggestion:
>> 
>> m <- rbind(  m[1:5,], 1:10, m[6:10,] ) # row insertion or ...
>> 
>> # not to be followed by, but rather instead column insertion ..
>> m <- cbind( m[,1:8], 1:10, m[,9:10] )
> 
> There might be something wrong with my eyes, but where is the
> refinement here? Your lines are literally the same as mines. There
> is no temporary matrix here, m2 and m3 are the results, he wanted
> either between row 5 and 6 _OR_ column 8 and 9. 
> 
> Oh, if you mean that we immediately put back the result into 'm',
> then 1) it does not really matter, R will create a temporary matrix 
> internally anyway, 

Am I correct in assuming that after the creation of m by way of a 
temporary matrix that the temporary matrix would then be available for 
garbage collection, whereas if both m and m2 were created, there would 
be more memory occupied by the two objects?

-- 
David Winsemius



More information about the R-help mailing list