Einfache Kombinatorik in der R
Möchte ich eine R-Funktion für das Auffinden aller möglichen einmaligen ungerichtete Kombinationen zwischen den Elementen von einem einzigen Vektor:
combi <- function(vec1)
{
si <- length(vec1)
first <- rep(vec1, (si-1):0)
secR <- rev(vec1)
second <- secR[sequence(1:(si-1))]
second <- rev(second)
combi <- matrix(cbind(first, second), ncol = 2)
return(combi)
}
und Fragen, ob es eine einfachere Möglichkeit, dies zu tun? (Ich brauche das Ergebnis in eine 2-spaltige matrix).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gut, es gibt einen eingebauten
combn
Funktion:Deins sieht schneller aus, obwohl, vielleicht, weil
combn
versucht zu lösen, ein Allgemeines problem (??):combn
watet durch ist wahrscheinlich der Unterschied.Gibt es eine Basis R-Funktion
combn
im Paketutils
die, soweit ich das beurteilen kann, gibt identisch (wenn umgesetzt) Ergebnisse. Der Unterschied ist, dasscombn
ist flexibler in dem Sinne, dass es auch die Berechnung von Kombinationen von anderer Länge als 2.Mithilfe der Basis-R
combn
:Berechnen Kombinationen der Länge 3:
Paket
combinat
. Große Anzahl von tools für Kombination, permutation, und all das.Dank für die Buchung. Ein paar Verbesserungen für die performance.
ein. Ich verwendet rep.int stattdessen rep oder, wenn herauszufinden, die Indizes für den ersten.
b. Ich verwendet
statt
c. Ich verwendet
statt