For a package application, I want to generate all 1-way, or 2-way, ... combinations of factors, symbolically, as a matrix. E.g., all two-way terms among 4 factors. > factors <- LETTERS[1:4] > combn(4,2) [,1] [,2] [,3] [,4] [,5] [,6] [1,] 1 1 1 2 2 3 [2,] 2 3 4 3 4 4 But I want to replace the numbers I in the above by factors[I]. I know I can do this with gtools::combinations: > t(combinations(4,2,factors)) [,1] [,2] [,3] [,4] [,5] [,6] [1,] "A" "A" "A" "B" "B" "C" [2,] "B" "C" "D" "C" "D" "D" But I'd prefer not to have to require an extra package if there is a simpler way using base R, e.g., by indexing the result of combn() using factors. I tried, among other non-working things: > res <- combn(4,2) > res[] <- LETTERS[1:4] > res [,1] [,2] [,3] [,4] [,5] [,6] [1,] "A" "C" "A" "C" "A" "C" [2,] "B" "D" "B" "D" "B" "D" right shape, but wrong result. What is the magic incantation here? -- Michael Friendly Email: friendly AT yorku DOT ca Professor, Psychology Dept. York University Voice: 416 736-5115 x66249 Fax: 416 736-5814 4700 Keele Street http://www.math.yorku.ca/SCS/friendly.html Toronto, ONT M3J 1P3 CANADA