Se ho un singolo vettore, posso ottenere il primo evento che è inferiore ad un valore:Come indice della prima occorrenza di un valore in ogni colonna della matrice
test <- c(0.5,0.8,0.1,0.08,0.06,0.04)
which(test<0.1)[1]
che dà correttamente la risposta come 4
. Tuttavia, come ottengo la prima occorrenza all'interno di ciascuna colonna della matrice, come il verificarsi furst sotto 5 nella seguente matrice 2 colonna:
test2 <- matrix(c(5,8,3,4,7,5,6,2),ncol=2)
Uso apply
con which
restituisce una lista:
> apply(test2<5,2,which)
[[1]]
[1] 3 4
[[2]]
[1] 4
durante l'utilizzo apply
con which.min
rendimenti 1
per tutte le colonne:
> apply(test2<5,2,which.min)
[1] 1 1
wh Eeeek, quello che voglio dovrebbe solo restituire [1] 3 4
- mi manca qualcosa di ovvio?
Sì, anche questo funziona! Ottengo lo stesso risultato dell'usare l'altra risposta quando la applico al mio set di risultati molto più ampio – ChrisW