重複 ( x
- y
== y
- x
) を取り除くには、最初にデータ内の行を並べ替えてから、以下を使用して重複を取り除きますduplicated
。
d2 = t(apply(d, 1, sort))
d2[!duplicated(d2),]
[,1] [,2]
[1,] "x" "x"
[2,] "x" "y"
[3,] "x" "z"
[4,] "y" "y"
[5,] "y" "z"
[6,] "z" "z"
または、 を使用combn
して組み合わせを取得することもできます。その後、必要なものを取得するためにデータをいじるだけで済みます。
levs = c("x", "y", "z")
comb_level1 = combn(levs, 1)
comb_level2 = combn(levs, 2)
t(cbind(rbind(comb_level1, comb_level1), comb_level2))
[,1] [,2]
[1,] "x" "x"
[2,] "y" "y"
[3,] "z" "z"
[4,] "x" "y"
[5,] "x" "z"
[6,] "y" "z"
を使用したソリューションの方が優れていると思いますduplicated
。