Index des ersten Vorkommens eines Werts in jeder Spalte einer Matrix abrufen
Wenn ich einen einzelnen Vektor habe, kann ich das erste Vorkommen erhalten, das unter einem Wert liegt:
test <- c(0.5,0.8,0.1,0.08,0.06,0.04)
which(test<0.1)[1]
das gibt richtig die Antwort als4
. Wie erhalte ich jedoch das erste Vorkommen in jeder Spalte einer Matrix, z. B. das erste Vorkommen unter 5 in der folgenden Matrix mit 2 Spalten:
test2 <- matrix(c(5,8,3,4,7,5,6,2),ncol=2)
Verwendenapply
mitwhich
gibt eine Liste zurück:
> apply(test2<5,2,which)
[[1]]
[1] 3 4
[[2]]
[1] 4
während dem Benutzenapply
mitwhich.min
kehrt zurück1
für alle Spalten:
> apply(test2<5,2,which.min)
[1] 1 1
während, was ich will, sollte gerade zurückkehren[1] 3 4
- Vermisse ich etwas Offensichtliches?