次のマトリックスについて考えてみます。
sequence <- structure(list(C1 = c(2L, 9L, 3L, 9L, 1L, 8L, 9L, 6L, 4L, 5L,
3L, 2L), C2 = c(3L, 6L, 5L, 8L, 8L, 7L, 3L, 7L, 2L, 1L, 4L, 1L
), C3 = c(8L, 2L, 6L, 4L, 6L, 5L, 7L, 4L, 5L, 9L, 1L, 7L)), .Names = c("C1",
"C2", "C3"), class = "data.frame", row.names = c(NA, -12L))
各行には3つの数字の組み合わせがあります。すべてのトライアドをペアに再結合しようとしています。各トライアド行は3つの行に分割されています(それぞれに可能なペアが含まれています)。たとえば、行1(2、3、8)は、行1(2、3)、行2(3、8)、および行3(2、8)に変換する必要があります。結果は次のようになります。
result <- structure(list(Col1 = structure(c(1L, 1L, 1L, 2L, 2L, 2L, 3L,
3L, 3L), .Label = c("Row 1", "Row 2", "Row 3"), class = "factor"),
Col2 = c(2L, 3L, 2L, 9L, 6L, 9L, 3L, 5L, 3L), Col3 = c(3L,
8L, 8L, 6L, 2L, 2L, 5L, 6L, 6L)), .Names = c("Col1", "Col2",
"Col3"), class = "data.frame", row.names = c(NA, -9L))
(テーブルは、すべての行が再結合されるまで繰り返されます)
私はcombn関数を使用してこれを実行しようとしましたt(combn(unlist(t(sequence)),2))
が、これは、各行の要素のみを再結合するのではなく、マトリックスのすべての要素を再結合することです。光はありますか?