Gegeben ein Vektor von Elementen, würde ich gerne eine Liste aller möglichen n
-Längen Kombinationen von Teilmengen von Elementen erhalten. Zum Beispiel, angesichts der (einfachste) -Sequenz 1:2
, würde Ich mag eine Liste Ziel der FormAlle N-Kombinationen aller Teilmengen
{ {{1},{1}}, {{1},{2}}, {{2},{2}}, {{1},{1,2}}, {{2},{1,2}}, {{1,2},{1,2}} }
wenn n=2
zu erhalten.
ich in der Lage war, mit dem folgenden eine Liste aller nichtleeren Teilmengen zu generieren:
listOfAllSubsets <- function (s) {
n <- length(s)
unlist(lapply(1:n, function (n) {
combn(s, n, simplify=FALSE)
}), recursive=FALSE)
}
Allerdings bin ich der beste Weg, nicht sicher, von hier zu gehen. Im Wesentlichen möchte ich ein kartesisches Produkt dieser Liste mit sich selbst (für).
Irgendwelche Vorschläge? Eine nicht-iterative Lösung wäre vorzuziehen (d. H. Keine for
Schleifen). Diese
'expand.grid' ist ein Weg, um die Kartesisches Produkt zu bekommen. Es sieht so aus, als ob Sie die leere Teilmenge auslassen. – Frank
Beispiel Ausgabe hat auch '({1}, {1})' aber fehlt '({2}, {2})'. –