Encontrar el índice de un elemento en un vector R

Manav Narula 30 enero 2023
  1. Utilice la función which() para encontrar el índice de un elemento en R
  2. Utilice la función match() para encontrar el índice de un elemento en R
Encontrar el índice de un elemento en un vector 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 Narula avatar Manav Narula avatar

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

Artículo relacionado - R Vector