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 answers

Gab 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

Antworten auf die Frage(8)

Ihre Antwort auf die Frage