/ /順序に関係なく、重複した組み合わせを削除する - r、組み合わせ

重複した組み合わせの削除(順序に関係なく) - r、組み合わせ

整数のデータフレームがあり、それはnのすべてのサブセットであり、1 ... nの3つの組み合わせを選択します。 たとえば、n = 5の場合、次のようになります。

      [,1] [,2] [,3]
[1,]    1    2    3
[2,]    1    2    4
[3,]    1    2    5
[4,]    1    3    4
[5,]    1    3    5
[6,]    1    4    5
[7,]    2    1    3
[8,]    2    1    4
[9,]    2    1    5
[10,]    2    3    4
[11,]    2    3    5
[12,]    2    4    5
[13,]    3    1    2
[14,]    3    1    4
[15,]    3    1    5
[16,]    3    2    4
[17,]    3    2    5
[18,]    3    4    5
[19,]    4    1    2
[20,]    4    1    3
[21,]    4    1    5
[22,]    4    2    3
[23,]    4    2    5
[24,]    4    3    5
[25,]    5    1    2
[26,]    5    1    3
[27,]    5    1    4
[28,]    5    2    3
[29,]    5    2    4
[30,]    5    3    4

私がやりたいことは、順序に関係なく、組み合わせが重複している行をすべて削除することです。 [1,] 1 2 3 〜と同じです [1,] 2 1 3 〜と同じです [1,] 3 1 2.

unique, duplicated、&​​c。これを考慮に入れていないようです。 また、私はかなり大量のデータ(nは〜750)を使って作業しているので、それはかなり速い操作であるべきです。これを行うことができる基本機能またはパッケージはありますか?

回答:

答えは№1の20

最初に行内でソートするだけです。何かのようなもの:

> dat = matrix(scan("data.txt"), ncol=3, byrow=T)
Read 90 items
> dat.sort = t(apply(dat, 1, sort))
> dat[!duplicated(dat.sort),]
[,1] [,2] [,3]
[1,]    1    2    3
[2,]    1    2    4
[3,]    1    2    5
[4,]    1    3    4
[5,]    1    3    5
[6,]    1    4    5
[7,]    2    3    4
[8,]    2    3    5
[9,]    2    4    5
[10,]    3    4    5