Well, this is a natural thing to program up using 3 nested 'for', loops. Alternatively, one could use something like:
> combn <- function( ..., l=list(...) ) + { + lens <- sapply( args, length) + ncomb <- prod(lens) + retval <- matrix(ncol=length(args), nrow=ncomb) + for(i in 1:length(args)) + { + retval[,i] <- rep(args[[i]], length=ncomb) + } + retval + } > combn(a=1:3, b=4:5, c=6:8) [,1] [,2] [,3] [1,] 1 4 6 [2,] 2 5 7 [3,] 3 4 8 [4,] 1 5 6 [5,] 2 4 7 [6,] 3 5 8 [7,] 1 4 6 [8,] 2 5 7 [9,] 3 4 8 [10,] 1 5 6 [11,] 2 4 7 [12,] 3 5 8 [13,] 1 4 6 [14,] 2 5 7 [15,] 3 4 8 [16,] 1 5 6 [17,] 2 4 7 [18,] 3 5 8 On Nov 19, 2007, at 9:59AM , Marc Bernard wrote: > Dear All, > > I wonder if there is any R function to generate a sequence of > vectors from existing ones. For example: > x 1<- c(1,2,3) > x2 <- c(4,5) > x3 <- c(6,7,8) > > The desired output is a list of all 3*2*3 = 18 possible > combinations of elements of x1,x2 and x3. One element for example > is (1,4,6). > > Many thanks in advance, > > Bernard > > > > > --------------------------------- > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@r-project.org 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. ______________________________________________ R-help@r-project.org 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.