Índice del primer mínimo o máximo de un vector en R con which.max y which.min
Las funciones which.max
y which.min
son funciones básicas de R que devuelven el índice del primer valor mínimo o máximo de un vector numérico o lógico, descartando valores faltantes y NaN.
La función which.max
Para obtener el índice del valor máximo de un vector numérico se puede introducir dicho vector en la función which.max
y ésta devolverá dicho índice.
x <- c(10, 23, 125, 20, 1)
# ¿Cuál es la posición del mayor valor?
which.max(x)
3
Ten en cuenta que esta función también puede utilizarse con un vector booleano. En este caso, la función devolverá el índice del primer TRUE
.
y <- c(FALSE, TRUE, TRUE, FALSE)
# ¿Cuál es la posición del primer TRUE?
which.max(y)
2
Devolver el máximo
Como la función devuelve un índice, también puedes obtener el valor máximo indexando la salida al vector original, como se muestra en el siguiente ejemplo. Ten en cuenta que también podrías hacer uso de la función max
para obtener el valor máximo.
x <- c(10, 23, 125, 20, 1)
m <- which.max(x)
x[m]
125
La función which.min
Si en lugar del índice del máximo quieres obtener el índice del valor mínimo de un vector tendrás que utilizar la función which.min
.
x <- c(10, 23, 125, 20, 1)
# ¿Cuál es la posición del varlo mínimo?
which.min(x)
5
En este caso, si el vector es booleano, la función devolverá el índice del primer FALSE
.
y <- c(FALSE, TRUE, TRUE, FALSE)
# ¿Cuál es la posición del primer FALSE?
which.min(y)
1
Devolver el mínimo
Si quieres devolver el valor mínimo, puedes indexar el vector como en el ejemplo siguiente. Recuerda que la función min
devolverá el mismo resultado.
x <- c(10, 23, 125, 20, 1)
m <- which.min(x)
x[m]
1