der folgenden Vektor der Länge Gegeben n=10
:eine spezifische Kombination aus allen möglichen Kombinationen in R
# [1] 0 0 0 0 0 1 0 0 1 0
vec <- c(0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 1L, 0L)
Angenommen wir den Operator &
auf alle möglichen Kombinationen der Vektorelemente anwenden möchten. Das heißt:
res <- combn(n, 2, function(v) vec[v[1]]&vec[v[2]])
# total number of possible combinations is n(n-1)/2 = 45
Wir wissen jedoch, dass das Ergebnis der &
Betreiber ist nur wahr, wenn beide Werte 1
sind, und daher können wir es in eine clevere Art und Weise tun. Tatsächlich ist das Ergebnis von combn
ein Vektor der Länge 45
mit nur einem Wert von 1
und der Rest sind nur 0
.
Nun ist die Frage, wie können wir die Position der einzigen 1
ohne Anwendung der combn
selbst extrahieren? Sobald wir es bekommen kann, erzeugen wir das Ergebnis einfach wie folgt:
res <- rep(0, 45)
res[index] <- 1
wo index
die Position in Frage gestellt ist.
Wie 'n' in der 'combn' Funktion definiert? – Jaap
@Procrastinatus Maximus: 'n = 10' in der ersten Zeile. –