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.pi...@precheza.cz>
wrote:
Hi
r-help-boun...@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@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
______________________________________________
R-help@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.