Encontrar Índice de um Elemento num Vector R

Manav Narula 30 janeiro 2023
  1. Use a função which() para encontrar o índice de um elemento em R
  2. Use a função match() para encontrar o índice de um elemento em R
Encontrar Índice de um Elemento num Vector R

Um vector é uma das estruturas de dados fundamentais em R. É utilizado para armazenar elementos numa sequência, mas ao contrário das listas, todos os elementos de um vector devem ser do mesmo tipo de dados.

Cada elemento do vector tem uma posição ou índice particular. É possível conhecer o índice de qualquer elemento utilizando funções incorporadas em R como which(), e match().

Neste tutorial, vamos encontrar o índice do elemento 7 e 8 do seguinte vector:

x <- c(5,6,8,9,7,5,7,8)

Use a função which() para encontrar o índice de um elemento em R

A função which() devolve um vector com o índice (ou índices) do elemento que corresponde ao vector lógico (neste caso ==).

Por exemplo:

x <- c(5,6,8,9,7,5,7,8)
which(x == 7)
[1] 5 7

Note-se que como 7 está presente duas vezes no vector, ambas as suas posições são devolvidas. Se quisermos o primeiro índice de 7, podemos simplesmente fazê-lo como se mostra abaixo:

which(x == 7)[1]
[1] 5

Podemos também utilizar a função which() para encontrar os índices de múltiplos elementos utilizando o parâmetro %em%, que devolve um vector com um valor True para cada elemento que corresponda.

which(x %in% c(7,8))
[1] 3 5 7 8

Como se pode ver, todas as posições de 7 e 8 são devolvidas.

Use a função match() para encontrar o índice de um elemento em R

A função match() é muito semelhante à função which(). Retorna um vector com o primeiro índice (se o elemento estiver em mais do que uma posição como no nosso caso) do elemento e é considerado mais rápido do que a função which().

x <- c(5,6,8,9,7,5,7,8)
match(7,x)
[1] 5

Podemos também utilizá-lo para encontrar o primeiro índice de múltiplos elementos, como se mostra abaixo:

x <- c(5,6,8,9,7,5,7,8)
match(c(7,8),x)
[1] 5 3

Note-se que apenas as primeiras posições de 7 e 8 são devolvidas pela função match(). É por isso que a função match() é considerada mais rápida dos dois métodos para tais situações em que apenas o primeiro índice é necessário.

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

Artigo relacionado - R Vector