From: <davidr_at_rhotrading.com>

Date: Sat 07 May 2005 - 06:11:15 EST

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 Received on Sat May 07 07:01:07 2005

Date: Sat 07 May 2005 - 06:11:15 EST

Thanks, Bert, but when I tried that, I didn't get a matrix:

*> newX
*

[[1]]

[1] 1 2 1 2

[[2]]

[1] 5 5 6 6

[[3]]

[1] 1 2 1 2

[[4]]

[1] 5 5 6 6

[[5]]

[1] 0

[[6]]

[1] 0

[[7]]

[1] 0

[[8]]

[1] 0

[[9]]

[1] 1 2 1 2

[[10]]

[1] 5 5 6 6

[[11]]

[1] 1 2 1 2

[[12]]

[1] 5 5 6 6

[[13]]

[1] 0

[[14]]

[1] 0

[[15]]

[1] 0

[[16]]

[1] 0

The matrix is in there, four times in fact. For larger problems, I believe it would be in 2^k times? It is certainly a one-liner, though, so if the matrix could be extracted simply, it could be of use.

Best regards,

David

-----Original Message-----

From: Berton Gunter [mailto:gunter.berton@gene.com]
Sent: Friday, May 06, 2005 2:49 PM

To: David Reiner <davidr@rhotrading.com>; r-help@stat.math.ethz.ch
Subject: RE: [R] Choices from a matrix

If I understand you correctly, here's one way based on expand.grid().

"The business of the statistician is to catalyze the scientific learning process." - George E. P. Box

> -----Original Message-----

*> From: r-help-bounces@stat.math.ethz.ch
**> [mailto:r-help-bounces@stat.math.ethz.ch] On Behalf Of
**> davidr@rhotrading.com
**> Sent: Friday, May 06, 2005 12:06 PM
**> To: r-help@stat.math.ethz.ch
**> Subject: [R] Choices from a matrix
**>
**> Could someone please suggest a more clever solution to the
**> following problem than my loop below?
**>
**> Given X a 2xN matrix X, and I a k-subset of N,
**> Generate the (2^k)xN matrix Y with columns not in I all zero
**> and the other columns with all choices of an entry from the
**> first or second row of X.
**>
**> For example, with
**> X <- matrix(1:8, nrow=2)
**> I <- c(1,3)
**>
**> X is
**> 1 3 5 7
**> 2 4 6 8
**>
**> and Y should be
**> 1 0 5 0
**> 2 0 5 0
**> 1 0 6 0
**> 2 0 6 0
**>
**> The order of the rows is unimportant.
**> ---
**> I solved this using a loop over the rows of Y after forming
**> some preliminary matrices. I think it could be improved.
**>
**> N <- NCOL(X)
**> k <- length(I)
**> G <- as.matrix(expand.grid(rep(list(c(1,2)),k)))
**> Y <- matrix(0,nc=N,nr=NROW(G))
**>
**> for(i in 1:NROW(G)){
**> ind <- rep(1,N)
**> ind[I] <- G[i,]
**> Y[i,] <- X[array(c(ind,1:N),dim=c(N,2))]
**> }
**> Y[,-I] <- 0
**>
**>
**>
**>
**> David L. Reiner
**>
**> Rho Trading
**> 440 S. LaSalle St -- Suite 620
**> Chicago IL 60605
**>
**> 312-362-4963 (voice)
**> 312-362-4941 (fax)
**>
**>
**> ______________________________________________
**> 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
*

>

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 Received on Sat May 07 07:01:07 2005

*
This archive was generated by hypermail 2.1.8
: Fri 03 Mar 2006 - 03:31:37 EST
*