# [R] A "matching problem"

Petr Savicky savicky at cs.cas.cz
Mon Jul 30 20:04:45 CEST 2012

```On Mon, Jul 30, 2012 at 08:40:59PM +0545, Christofer Bogaso wrote:
> Dear all, I was encountering with a typical Matching problem and was
> wondering whether R can help me to solve it directly.
>
> Let say, I have 2 vectors of equal length:
> vector1 <- LETTERS[1:6]
> vector2 <- letters[1:6]
>
> Now I need to match these 2 vectors with all possible ways like:
>
> (A,B,C,D,E) & (a,b,c,d,e) is 1 match. Another match can be (A,B,C,D,E) &
> (b,a,c,d,e), however there cant be any duplication.

Hi.

If i understand correctly, all matches are obtained by taking all
permutations of (a,b,c,d,e) and relating them to unchanged (A,B,C,D,E).
Try the following.

library(permute)
vector2 <- letters[1:3]
p <- allPerms(length(vector2), observed=TRUE)
matrix(vector2[p], nrow=nrow(p), ncol=ncol(p))

[,1] [,2] [,3]
[1,] "a"  "b"  "c"
[2,] "a"  "c"  "b"
[3,] "b"  "a"  "c"
[4,] "b"  "c"  "a"
[5,] "c"  "a"  "b"
[6,] "c"  "b"  "a"

The rows of the resulting matrix are all permutations of vector2.

Hope this helps.

Petr Savicky.

```