Ich versuche, durch jede Zeile in einer Matrix zu iterieren, finden Sie die Spalte mit dem Mindestwert und den Spaltennamen und löschen Sie diese Spalte, nachdem es so verwendet wurde ein neues Minimum kann berechnet werden. Die richtige Antwort sollte wie folgt aussehen:R: Apply Familie, die Spalten als Teil der Funktion
result
1/1 50
2/2 61
3/3 72
4/4 83
Test_Matrix <- matrix(c(50:149), ncol = 10 , byrow=FALSE)
Names <- c(1:10)
colnames(Test_Matrix) <- Names
rownames(Test_Matrix) <- Names
result <- t(sapply(seq(nrow(Test_Matrix)), function(i) {
j <- which.min(Test_Matrix[i,])
c(paste(rownames(Test_Matrix)[i], colnames(Test_Matrix)[j], sep='/'), Test_Matrix[i,j])
drops <- colnames(Test_Matrix)[j]
Test_Matrix[ , !(names(Test_Matrix) %in% drops)]
}))
result
Zweite Frage ist, dass ich die Reihenfolge der Zeilen während der Iteration wählen möchten, so dass es in die nächste Zeile zu gehen, wählt, die den gleichen Namen wie die Kolonne hatte Name. Wenn die Spalte mit dem Minimum zum Beispiel 5 heißt, wird Spalte 5 gelöscht, und das Minimum für die Zeile mit dem Namen 5 wird als nächstes berechnet.
Fragen, ob dies möglich ist und ob für diese Berechnungen eine Schleife benötigt wird.
Als neuer R-Benutzer schätze ich jede Hilfe. Danke!