Skip to content
Prev 69307 / 398530 Next

Choices from a matrix

Bert, that was almost it, we just need one more as.matrix:

newX[,I]<-as.matrix(expand.grid(as.list(as.data.frame(X[,I]))))

This works as advertised.

Best regards,
David

p.s. I agree that the extra as.list is counterintuitive.
It might be nice if there were a matrix form of expand.grid.

-----Original Message-----
From: Berton Gunter [mailto:gunter.berton at gene.com] 
Sent: Friday, May 06, 2005 2:49 PM
To: David Reiner <davidr at rhotrading.com>; r-help at stat.math.ethz.ch
Subject: RE: [R] Choices from a matrix

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

I is just an index set, and so all you really need to do is generate your
2^k rows from the part of the matrix you're using in the right places via
replacement:  

e.g. newX<-matrix(0, ncol=ncol(X),nrow=2^length(I))
newX[,I]<-expand.grid(as.list(as.data.frame(X[,I]))) 


N.B. I tried to do the this without the explicit as.list() cast, but got an
error message. I would have thought that expand.grid should have recognized
that a data.frame IS a list without the cast.

-- Bert Gunter
Genentech Non-Clinical Statistics
South San Francisco, CA
 
"The business of the statistician is to catalyze the scientific learning
process."  - George E. P. Box