[R] horizontal direct product

From: Luke Keele <keele.4_at_polisci.osu.edu>
Date: Sat 26 Aug 2006 - 05:35:44 EST


II am translating some gauss code into R, and gauss has a matrix product function called the horizontal direct product (*~), which is some sort of variant on the Kronecker product.

For example if x is 2x2 and y is 2x2

the horizontal direct product, z, of x and y is defined (in the Gauss manual) as:

row 1 = x11*y11 x11*y12 x12*y11 x12*y12
row 2 = x21*y21 x21*y22 x22*y21 x22*y22

Or in R code if:

x <- matrix(seq(1,4,by=1),2,2, byrow=TRUE) y <- matrix(seq(5,8,by=1),2,2, byrow=TRUE)

The resulting matrix, if I had an operator, would be the following matrix z, here formed in a contrived manner:

z.1 <- c(5, 6, 10, 12)
z.2 <- c(21,24,28,32)
z <- rbind(z.1,z.2)

I realize that this is just the first and last row of x%*%y when x and y are two by two but this won't generalize with larger matrices. Any ideas about whether this can be done with existing R functions in a general way short of writing my own function?

   Thanks

Luke

Luke Keele
Department of Political Science
Ohio State University
keele.4@polisci.osu.edu

        [[alternative HTML version deleted]]



R-help@stat.math.ethz.ch 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. Received on Sat Aug 26 05:53:55 2006

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Sat 26 Aug 2006 - 12:27:55 EST.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.