コンテンツが文字のベクトルであるリストのリストがあります。例えば:
yoda <- list(a=list(c("A","B","C"), c("B","C","D")), b=list(c("D","C"), c("B","C","D","E","F")))
これは私が実際にやろうとしているものよりもはるかに短いバージョンです。私にとっては、それぞれが約12のサブリストを持つ11のリストメンバーがいます。リストメンバーごとに、1つのサブメンバーリストを選択する必要があります。「a」用に1つのリスト、「b」用に1つのリスト。サブリストのどの組み合わせが最大数の一意の値を与えるかを見つけたいと思います。この単純な例では、「a」の最初のサブリストと「b」の2番目のサブリストが最終的な答えを示します。
c("A","B","C","D","E","F")
現時点では、ネストされたループが大量にあり、それは永遠に続くようです。コードの貧弱な部分は次のとおりです。
res <- list()
for (a in 1:length(extra.pats[[1]])) {
for (b in 1:length(extra.pats[[2]])) {
for (c in 1:length(extra.pats[[3]])) {
for (d in 1:length(extra.pats[[4]])) {
for (e in 1:length(extra.pats[[5]])) {
for (f in 1:length(extra.pats[[6]])) {
for (g in 1:length(extra.pats[[7]])) {
for (h in 1:length(extra.pats[[8]])) {
for (i in 1:length(extra.pats[[9]])) {
for (j in 1:length(extra.pats[[10]])) {
for (k in 1:length(extra.pats[[11]])) {
res[[paste(a,b,c,d,e,f,g,h,i,j,k, sep="_")]] <- unique(extra.pats[[1]][[a]], extra.pats[[2]][[b]], extra.pats[[3]][[c]], extra.pats[[4]][[d]], extra.pats[[5]][[e]], extra.pats[[6]][[f]], extra.pats[[7]][[g]], extra.pats[[8]][[h]], extra.pats[[9]][[i]], extra.pats[[10]][[j]], extra.pats[[11]][[k]])
}
}
}
}
}
}
}
}
}
}
}
誰かがこれを適切に行う方法について何かアイデアを持っているなら、それは素晴らしいことです。