Генерация неповторяющихся пар комбинаций в R - PullRequest
11 голосов
/ 10 ноября 2009

Извините за неописательный заголовок, но я не знаю, есть ли слово для того, чего я пытаюсь достичь.

Давайте предположим, что у меня есть список имен различных классов, таких как

c( '1', '2', '3', '4')

Я бы хотел сгенерировать все возможные пары перестановок, чтобы не было обратных дубликатов. Так что я хотел бы иметь что-то вроде

'1' '2'
'1' '3'
'1' '4'
'2' '3'
'2' '4'
'3' '4'

Обратите внимание, что у меня нет, например, '2' '1' потому что у меня уже есть '1' '2'. Есть ли простой способ добиться этого в R?

1 Ответ

12 голосов
/ 10 ноября 2009
> x<-c('1','2','3','4')
> combn(x,2)
     [,1] [,2] [,3] [,4] [,5] [,6]
[1,] "1"  "1"  "1"  "2"  "2"  "3" 
[2,] "2"  "3"  "4"  "3"  "4"  "4"
...