Encontrar el índice de un elemento en un vector R
-
Utilice la función
which()
para encontrar el índice de un elemento en R -
Utilice la función
match()
para encontrar el índice de un elemento en R
Un vector es una de las estructuras de datos fundamentales en R. Se utiliza para almacenar elementos en una secuencia, pero a diferencia de las listas, todos los elementos en un vector deben ser del mismo tipo de datos.
Cada elemento del vector tiene una posición particular o índice. Es posible conocer el índice de cualquier elemento utilizando funciones incorporadas en R como which()
, y match()
.
En este tutorial, encontraremos el índice de los elementos 7
y 8
del siguiente vector:
x <- c(5,6,8,9,7,5,7,8)
Utilice la función which()
para encontrar el índice de un elemento en R
La función which()
devuelve un vector con el índice (o los índices) del elemento que coincide con el vector lógico (en este caso ==
).
Por ejemplo:
x <- c(5,6,8,9,7,5,7,8)
which(x == 7)
[1] 5 7
Observe que como 7
está presente dos veces en el vector, se devuelven sus dos posiciones. Si queremos el primer índice de 7
, podemos hacerlo simplemente como se muestra a continuación:
which(x == 7)[1]
[1] 5
También podemos utilizar la función which()
para encontrar los índices de múltiples elementos utilizando el parámetro %in%
, que devuelve un vector con un valor True
para cada elemento que coincida.
which(x %in% c(7,8))
[1] 3 5 7 8
Como puede ver, se devuelven todas las posiciones de 7
y 8
.
Utilice la función match()
para encontrar el índice de un elemento en R
La función match()
es muy similar a la función which()
. Devuelve un vector con el primer índice (si el elemento está en más de una posición como en nuestro caso) del elemento y se considera más rápida que la función which()
.
x <- c(5,6,8,9,7,5,7,8)
match(7,x)
[1] 5
También podemos utilizarla para encontrar el primer índice de múltiples elementos, como se muestra a continuación:
x <- c(5,6,8,9,7,5,7,8)
match(c(7,8),x)
[1] 5 3
Observe que la función match()
sólo devuelve las primeras posiciones de 7
y 8
. Por eso se considera que match()
es el más rápido de los dos métodos para estas situaciones en las que sólo se necesita el primer índice.
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn