# [R] How to do this "combination"?

Liaw, Andy andy_liaw at merck.com
Thu Sep 9 01:32:54 CEST 2004

```> n <- 2
> p <- 5
> m <- do.call("expand.grid", data.frame(matrix(rep(1:n, p), n, p)))
> do.call("paste", c(m, sep=""))
[1] "11111" "21111" "12111" "22111" "11211" "21211" "12211" "22211" "11121"
"21121"
[11] "12121" "22121" "11221" "21221" "12221" "22221" "11112" "21112" "12112"
"22112"
[21] "11212" "21212" "12212" "22212" "11122" "21122" "12122" "22122" "11222"
"21222"
[31] "12222" "22222"

Please give _all_ the details up front, instead of waiting for people to
guess them.

Andy

> From: wanr at ucalgary.ca
>
> Hi all,
>
> source vector = (1,2)
> the length of the target vector = 3
>
> My expected "complete" output should be:
> 111, 112, 121, 122, 211, 212, 221, 222 (they are Not
> numerical numbers, they
> are equivalent to abc and aab etc.).
>
> Not perfect solutions suggested by others so far:
>
> solution1: sample(c(1,2),3,replace=TRUE) just gives me one "randomly
> sampled" combination at a time. However, I need the whole
> list displayed
> above at a time.
>
> solution2: as.matrix(expand.grid(1:2, 1:2, 1:2)) almost
> implements what I
> need.
>
> However, in my case, the length of the target vector is not fixed in
> advance. For example, the output might be 11111, 11112, and
> etc coming from
> the source vector (1,2).
>
>
> Rui
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help