[R] Odp: Matrix
baptiste auguie
ba208 at exeter.ac.uk
Mon Feb 2 18:27:04 CET 2009
Hi,
Perhaps this can help if you don't want to manually specify the
permutation of indices,
> A=matrix(10,ncol=2,nrow=2)
> B <- 2*A
> C <- rbind(A, B)
>
> C[ as.vector(t(matrix(seq(1,nrow(C)),ncol=2))), ] # trick to create
> the vector of permutations
>
> [,1] [,2]
> [1,] 10 10
> [2,] 20 20
> [3,] 10 10
> [4,] 20 20
The transpose operation might slow down the process on very large
matrices, I'm not sure how to improve this.
Hope this helps,
baptiste
On 2 Feb 2009, at 17:02, Paul Smith wrote:
> On Mon, Feb 2, 2009 at 4:05 PM, Petr PIKAL <petr.pikal at precheza.cz>
> wrote:
>> Hi
>>
>> r-help-bounces at r-project.org napsal dne 02.02.2009 16:52:06:
>>
>>>
>>> Hi,
>>>
>>> I have a very basic question on merging two matrices by
>>> alternating the
>>> rows. For illustration, assume two matrices -
>>>
>>> A looks like:
>>>
>>> 10 10
>>> 10 10
>>>
>>> B looks like:
>>>
>>> 20 20
>>> 20 20
>>>
>>> How do I combine them such that I get alternating rows from A and
>>> B? My
>>> final result should be C which looks like:
>>>
>>> 10 10
>>> 20 20
>>> 10 10
>>> 20 20
>>
>> I would rbind both matrices and then indexed the resulting matrix.
>>
>> x<-rep(10,4)
>> y<-rep(20,4)
>> dim(x)<-c(2,2)
>> dim(y)<-c(2,2)
>> z<-rbind(x,y)
>>> z
>> [,1] [,2]
>> [1,] 10 10
>> [2,] 10 10
>> [3,] 20 20
>> [4,] 20 20
>>
>> ind<-c(seq(1,4,2), seq(2,4,2))
>> z[ind,]
>>
>>> z[ind,]
>> [,1] [,2]
>> [1,] 10 10
>> [2,] 20 20
>> [3,] 10 10
>> [4,] 20 20
>>
>
> Another solution:
>
> m1 <- matrix(10,4,2)
> m2 <- matrix(20,2,2)
> m1[seq(2,4,2),] <- m2
>
> Paul
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
_____________________________
Baptiste Auguié
School of Physics
University of Exeter
Stocker Road,
Exeter, Devon,
EX4 4QL, UK
Phone: +44 1392 264187
http://newton.ex.ac.uk/research/emag
More information about the R-help
mailing list