[R] looping using combinatorics

Jesse Albert Canchola jesse.canchola.b at bayer.com
Fri Jul 14 00:40:46 CEST 2006


I have a problem where I need to loop over the total combinations of 
vectors (combined once chosen via combinatorics).  Here is a 
simplification of the problem:

STEP 1:  Define three vectors a, b, c.
STEP 2:  Combine all possible pairwise vectors (i.e., 3 choose 2 = 3 
possible pairs of vectors: ab,ac, bc)
NOTE:  the actual problem has 8 choose 4, 8 choose 5 and 8 choose 6 
combinations.
STEP 3:  Do the same math on each pairwise combination and spit out 
answers each time

####### BEGIN CODE #######
#STEP 1
a1 <- c(1,2,3,4,5,6,7,8,9,10,11,12)
a <- matrix(a1,2,3,byrow=T)
a

b1 <- c(13,14,15,16,17,18,19,20,21,22,23,24)
b <- matrix(b1,2,3,byrow=T)
b

c1 <- c(25,26,27,28,29,30,31,32,33,34,35,36)
c <- matrix(b1,2,3,byrow=T)
c

# example:  combine the first two vectors "a" and "b"
combab <- rbind(a,b)
 
# the a,b combined data from the algorithm later below should look like
# something like the following:
combab 

# use the combinatorics "combn" function found in the "combinat" package 
on CRAN
m <- combn(3,2) # three choose two combinations
m

# the first assignment below should be numeric and then subsequent 
# assignments as character since the first time you assign a number to 
# a character in a matrix the rest of the numbers in the matrix are 
coerced to character
m[m==1]='a'; m[m=='2']='b'; m[m=='3']='c'
m

#STEP 2: combine pairwise vectors into a matrix or frame
for (i in dim(m)[1])
    for (j in dim(m)[2])
        {
            combined <- 
rbind(cat(format(m[i]),"\n"),cat(format(m[j]),"\n")) #cat/format removes 
the quotes
            combined
        }
traceback() 


#STEP 3: {not there yet}
################# END CODE ################

The problem is that in STEP 2 (not complete), the results in the rbind are 
not recognized as the objects they represent (i.e., the "a" without quotes 
is not recognized as the data object we defined in STEP 1.  Perhaps this 
is a parsing problem.  Perhaps there is an alterative way to do this.  I 
looked pretty long and hard in the CRAN libraries but alas, I am stuck. 
BTW, I picked up R about a month ago (I used primarily SAS, Stata and 
SPSS).

Regards and TIA,
Jesse






Jesse A. Canchola
Biostatistician III
Bayer Healthcare
725 Potter St.
Berkeley, CA 94710
P: 510.705.5855
F: 510.705.5718
E: Jesse.Canchola.b at Bayer.Com




_______________________________________________________________________________________________

The information contained in this e-mail is for the exclusive use of the intended recipient(s) and may be confidential, proprietary, and/or legally privileged.  Inadvertent disclosure of this message does not constitute a waiver of any privilege.  If you receive this message in error, please do not directly or indirectly use, print, copy, forward, or disclose any part of this message.  Please also delete this e-mail and all copies and notify the sender.  Thank you.

For alternate languages please go to http://bayerdisclaimer.bayerweb.com



More information about the R-help mailing list