Combinações por grupo em R
Eu tenho uma pergunta sobre combinações por grupo.
Minha mini amostra é assim:
sample <- data.frame(
group=c("a","a","a","a","b","b","b"),
number=c(1,2,3,2,4,5,3)
)
Se eu aplicar a função decombn
para o quadro de dados, ele me dá o seguinte resultado, que é todas as combinações dos valores na coluna 'número', independentemente de qual grupo o valor pertence:
[,1] [,2]
[1,] 1 2
[2,] 1 3
[3,] 1 2
[4,] 1 4
[5,] 1 5
[6,] 1 3
[7,] 2 3
[8,] 2 2
[9,] 2 4
[10,] 2 5
[11,] 2 3
[12,] 3 2
[13,] 3 4
[14,] 3 5
[15,] 3 3
[16,] 2 4
[17,] 2 5
[18,] 2 3
[19,] 4 5
[20,] 4 3
[21,] 5 3
O código que eu usei para os resultados acima é o seguinte:
t(combn((sample$number), 2))
No entanto, gostaria de obter os resultados da combinação dentro do grupo (ou seja, "a", "b"). Portanto, o resultado que eu quero obter deve ficar assim:
[,1] [,2] [,3]
[1,] a 1 2
[2,] a 1 3
[3,] a 1 2
[4,] a 2 3
[5,] a 2 2
[6,] a 3 2
[7,] b 4 5
[8,] b 4 3
[9,] b 5 3
Além das combinações, gostaria de obter a coluna indicando o grupo.