良いタイトルを選択したかどうかはまったくわかりません...また、正しい用語を使用しているかどうかもわかりません。そのため、正しい検索用語を使用して、この問題の解決策を見つけることができるかもしれません...
3つの「排他的な」組み合わせのすべてのセットを取得したい文字列のリストがあります.
例: 以下の場合
require(utils)
mylist<-c("strA","strB","strC","strD","strE","strF")
t(combn(mylist,3))
これらの 6 つの文字列のうち 3 つの可能な組み合わせをすべてリストした表を取得します (したがって、各行は 3 つの組み合わせの 1 つを表します)。
[,1] [,2] [,3]
[1,] "strA" "strB" "strC"
[2,] "strA" "strB" "strD"
[3,] "strA" "strB" "strE"
[4,] "strA" "strB" "strF"
[5,] "strA" "strC" "strD"
[6,] "strA" "strC" "strE"
[7,] "strA" "strC" "strF"
[8,] "strA" "strD" "strE"
[9,] "strA" "strD" "strF"
[10,] "strA" "strE" "strF"
[11,] "strB" "strC" "strD"
[12,] "strB" "strC" "strE"
[13,] "strB" "strC" "strF"
[14,] "strB" "strD" "strE"
[15,] "strB" "strD" "strF"
[16,] "strB" "strE" "strF"
[17,] "strC" "strD" "strE"
[18,] "strC" "strD" "strF"
[19,] "strC" "strE" "strF"
[20,] "strD" "strE" "strF"
しかし、各文字列が 1 回だけ出現する 3 の組み合わせのすべてのセットが必要です。したがって、私の目的の出力は次のようになります。
$1
[,1] [,2] [,3]
[1,] "strA" "strB" "strC"
[2,] "strD" "srtE" "strF"
$2
[,1] [,2] [,3]
[1,] "strA" "strB" "strD"
[1,] "strC" "strE" "strF"
$3
[,1] [,2] [,3]
[1,] "strA" "strB" "strE"
[1,] "strC" "strD" "strF"
...
したがって、ここでは、各サブ要素 ( $1
、$2
、$3
など) に 3 つの文字列の 2 つの組み合わせが含まれています (2*3=6 として、6 つの文字列で)。各セットで、各文字列は複数回出現してはなりません。
mylist
もちろん、これがの倍数ではない の長さに対しても可能であれば素晴らしいことですn=3
。たとえば 10 個の文字列 (「strG」、「strH」、「strI」、「strJ」を追加) がある場合、各組み合わせで 1 つの文字列を省略したいと思います。したがって、望ましい結果は次のようになります
$1
[,1] [,2] [,3]
[1,] "strA" "strB" "strC"
[2,] "strD" "strE" "strF"
[3,] "strG" "strH" "strI"
$2
[,1] [,2] [,3]
[1,] "strA" "strB" "strC"
[2,] "strD" "strE" "strF"
[3,] "strG" "strH" "strJ"
$3
[,1] [,2] [,3]
[1,] "strA" "strB" "strC"
[2,] "strD" "strE" "strF"
[3,] "strG" "strI" "strJ"
$4
[,1] [,2] [,3]
[1,] "strA" "strB" "strC"
[2,] "strE" "strF" "strG"
[3,] "strH" "strI" "strJ"
...
誰かがこれに対する解決策を持っていますか? 私の説明が不明確な場合は、お知らせください。
乾杯