Ich versuche eine Adjazenzmatrix M aus einer Liste pList zu erstellen, die die Indizes enthält, die in der Matrix M gleich 1 sein müssen. Zum Beispiel ist M eine 10x5 Matrix Die Variable pList enthält 5 Elemente, die jeweils einen Vektor von Indizes istR Populate Matrix mit einer Liste von Indizes
Beispiel:
s <- list("1210", c("254", "534"), "254", "534", "364")
M <- matrix(c(rep(0)),nrow = 5, ncol = length(unique(unlist(s))), dimnames=list(1:5,unique(unlist(s))))
Eigentlich meine zu einfache Lösung ist, die brutale eine mit einem zur Schleife über Zeilen der Matrix:
for (i in 1:nrow(M)){
M[i, as.character(s[[i]])] <- 1
}
So
, dass das erwartete Ergebnis:
M
1210 254 534 364
1 1 0 0 0
2 0 1 1 0
3 0 1 0 0
4 0 0 1 0
5 0 0 0 1
Das Problem ist, dass ich Matrizen mit mehreren tausend Zeilen zu manipulieren, und es dauert zu lange. Ich bin kein Experte „anwenden“, aber ich frage mich, ob es eine schnellere Lösung
istDank
Grüße