Como usar a função match() em r (com exemplos)
A função match() em R retorna a posição da primeira correspondência entre dois objetos.
Esta função usa a seguinte sintaxe básica:
match(object1, object2)
Os exemplos a seguir mostram como usar essa função em diferentes cenários.
Exemplo 1: Combinando um valor em um vetor
O código a seguir mostra como usar a função match() para encontrar a primeira ocorrência de um valor específico em um vetor:
#define value to look for in vector
value <- 10
#define vector of values
vector1 <- c(8, 9, 1, 10, 13, 15)
#find first occurrence of 10
match(value, vector1)
[1] 4
Isto nos diz que o valor 10 aparece primeiro na 4ª posição do vetor.
Observe que se vários valores corresponderem, apenas a posição da primeira correspondência será retornada.
Por exemplo, o vetor a seguir possui dois valores iguais a 10 mas apenas a posição dos 10 primeiros é retornada:
#define value to look for in vector
value <- 10
#define vector of values with multiple '10' values
vector1 <- c(8, 9, 1, 10, 10, 10)
#find first occurrence of 10
match(value, vector1)
[1] 4
O valor 10 aparece nas posições 4, 5 e 6, mas somente a posição 4 é retornada.
Exemplo 2: Correspondência de valores em dois vetores
O código a seguir mostra como usar a função match() para encontrar a primeira ocorrência de valores em um vetor em outro vetor:
#define vectors of values
vector1 <- c(1, 2, 3, 4, 5, 6)
vector2 <- c(8, 6, 1, 10, 10, 15)
#find first occurrence of values in vector1 within vector2
match(vector1, vector2)
[1] 3 NA NA NA NA 2
Veja como interpretar o resultado:
- A primeira ocorrência do valor 1 no vetor1 ocorre na posição 3 do vetor2.
- O valor 2 em vector1 nunca aparece em vector2.
- O valor 3 em vector1 nunca aparece em vector2.
- O valor 4 em vector1 nunca aparece em vector2.
- O valor 5 em vector1 nunca aparece em vector2.
- A primeira ocorrência do valor 6 no vetor1 ocorre na posição 2 do vetor2.
Observe que também podemos especificar um valor diferente para usar nos casos em que não há correspondência.
Por exemplo, poderíamos retornar um valor 0 em vez de NA:
#define vectors of values
vector1 <- c(1, 2, 3, 4, 5, 6)
vector2 <- c(8, 6, 1, 10, 10, 15)
#find first occurrence of values in vector1 within vector2
match(vector1, vector2, nomatch= 0 )
[1] 3 0 0 0 0 2
Recursos adicionais
Os tutoriais a seguir explicam como usar outras funções comuns em R:
Como usar a função summary() em R
Como usar a função replicate() em R
Como usar a função gsub() em R
Como usar a função par() em R