Extrahieren Sie die erste WAHR pro Zeile in der logischen Matrix effizient in R [duplizieren]
Diese Frage hat hier bereits eine Antwort:
Wie diese Operation in jeder Zeile einer Matrix vektorisiert wird 3 answersGab die folgende Matrix:
A B C
[1,] TRUE FALSE TRUE
[2,] FALSE TRUE TRUE
[3,] FALSE FALSE TRUE
[4,] FALSE TRUE TRUE
[5,] FALSE TRUE TRUE
[6,] TRUE TRUE TRUE
m <- structure(c(TRUE, FALSE, FALSE, FALSE, FALSE, TRUE, FALSE, TRUE,
FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE), .Dim = c(6L,
3L), .Dimnames = list(NULL, c("A", "B", "C")))
Wie können wir die erste Spalte mit dem Wert TRUE pro Zeile extrahieren? effizient? Natürlich könnten wir @ verwendapply
pro Zeile und dann dasmin(which(...))
.
Hier ist die gewünschte Ausgabe:
[1] A B C B B A
Dieser Thread scheint ein Duplikat meiner Frage zu sein, aber es ist nicht:
Hier reden wir über einlogical matrix KEIN numerischer DatenrahmenHier versuchen wir die Position des ersten WAHR zu bekommen, nicht den höchsten Wert