Wenn ich einen einzelnen Vektor haben, kann ich das erste Vorkommen erhalten, die unter einem Wert ist:Erste Index des ersten Auftretens eines Wertes in jeder Spalte einer Matrix
test <- c(0.5,0.8,0.1,0.08,0.06,0.04)
which(test<0.1)[1]
die korrekte Antwort als 4
gibt . Aber wie kann ich in jeder Spalte einer Matrix, wie das furst Auftreten unter 5 in der folgenden 2 Säulenmatrix das erste Vorkommen erhalten:
test2 <- matrix(c(5,8,3,4,7,5,6,2),ncol=2)
Mit apply
mit which
gibt eine Liste:
> apply(test2<5,2,which)
[[1]]
[1] 3 4
[[2]]
[1] 4
mit
apply
mit
which.min
kehrt
1
für alle Spalten
während:
> apply(test2<5,2,which.min)
[1] 1 1
wh Ereas, was ich will, sollte einfach [1] 3 4
zurückgeben - vermisse ich etwas offensichtlich?
Ja - das funktioniert auch! Ich erhalte das gleiche Ergebnis wie die andere Antwort, wenn ich sie auf meine viel größere Ergebnismenge anwende – ChrisW