Encontrar el índice de un elemento en un vector R

Manav Narula 30 enero 2023 25 febrero 2021
  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.

Author: Manav Narula
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