Si tengo un solo vector, puedo conseguir la primera ocurrencia, que está por debajo de un valor:Conseguir índice de la primera aparición de un valor en cada columna de una matriz
test <- c(0.5,0.8,0.1,0.08,0.06,0.04)
which(test<0.1)[1]
que da correctamente la respuesta como 4
. Sin embargo, cómo consigo la primera aparición dentro de cada columna de una matriz, tal como la ocurrencia furst por debajo de 5 en la matriz 2 la columna siguiente:
test2 <- matrix(c(5,8,3,4,7,5,6,2),ncol=2)
Usando apply
con which
devuelve una lista:
> apply(test2<5,2,which)
[[1]]
[1] 3 4
[[2]]
[1] 4
durante el uso de apply
con which.min
vuelve 1
para todas las columnas:
> apply(test2<5,2,which.min)
[1] 1 1
wh Ereas, lo que quiero debería simplemente devolver [1] 3 4
- ¿Me falta algo obvio?
Sí, ¡esto también funciona! Obtengo el mismo resultado que usar la otra respuesta cuando la aplico a mi conjunto de resultados mucho más grande – ChrisW