A is a 5 x 3 matrix and a is a 3-vector. I like to exponentiate A[,1] to a[1], A[,2] to a[2], and A[,3] to a[3], and obtain the product of the resulting columns, as in line 3.
I also accomplish this with lines 4 and 5. I like to have rowProducts(B) but there is not so I came up with something ugly in line 5--exponentiating the row sums of log. Is there a more elegant way than than line 5 or, better yet, lines 4 and 5 together? Thanks. A<-matrix(1:15,nrow=5,byrow=F); A a<-c(1,2,3) (A[,1]^a[1])*(A[,2]^a[2])*(A[,3]^a[3]) B<-t(t(A)^a); B exp(rowSums(log(B))) Result: > A<-matrix(1:15,nrow=5,byrow=F); A [,1] [,2] [,3] [1,] 1 6 11 [2,] 2 7 12 [3,] 3 8 13 [4,] 4 9 14 [5,] 5 10 15 > a<-c(1,2,3) > (A[,1]^a[1])*(A[,2]^a[2])*(A[,3]^a[3]) [1] 47916 169344 421824 889056 1687500 > B<-t(t(A)^a); B [,1] [,2] [,3] [1,] 1 36 1331 [2,] 2 49 1728 [3,] 3 64 2197 [4,] 4 81 2744 [5,] 5 100 3375 > exp(rowSums(log(B))) [1] 47916 169344 421824 889056 1687500 > [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.