Dato un vettore di elementi, vorrei ottenere un elenco di tutte le possibili combinazioni di sottogruppi di elementi n
. Ad esempio, data la (semplice) sequenza 1:2
, desidero ottenere un oggetto lista di moduloTutte le N Combinazioni di tutti i sottogruppi
{ {{1},{1}}, {{1},{2}}, {{2},{2}}, {{1},{1,2}}, {{2},{1,2}}, {{1,2},{1,2}} }
quando n=2
.
sono stato in grado di generare un elenco di tutti i sottoinsiemi non vuoti utilizzando la seguente:
listOfAllSubsets <- function (s) {
n <- length(s)
unlist(lapply(1:n, function (n) {
combn(s, n, simplify=FALSE)
}), recursive=FALSE)
}
Tuttavia, non sono sicuro che il modo migliore di procedere da qui. Essenzialmente, voglio un prodotto cartesiano di questa lista con se stesso (per n=2
).
Qualche suggerimento? Sarebbe preferibile una soluzione non iterativa (cioè, nessun loop for
).
'expand.grid' è un modo di ottenere il prodotto cartesiano. A proposito, sembra che tu stia lasciando fuori il sottoinsieme vuoto. – Frank
Anche l'output di esempio ha '({1}, {1})' ma manca '({2}, {2})'. –