Como usar a função intersect() em r (com exemplos)


Você pode usar a função intersect() na base R para encontrar a interseção de dois objetos.

A “interseção” representa simplesmente os elementos que os dois objetos têm em comum.

Esta função usa a seguinte sintaxe básica:

 intersect(object1, object2)

Os exemplos a seguir mostram como usar a função intersect() com vetores e quadros de dados.

Exemplo 1: Use intersect() com vetores

O código a seguir mostra como usar a função intersect() para encontrar a interseção entre dois vetores em R:

 #define two vectors
x <- c(1, 4, 5, 5, 9, 12, 19)
y <- c(1, 2, 5, 5, 10, 14, 19)

#find intersection between two vectors
intersect(x,y)

[1] 1 5 19

Pelo resultado, podemos ver que os vetores x e y possuem três valores em comum: 1 , 5 e 19 .

Observe que a função intersect() também funciona com vetores de caracteres:

 #define two vectors
x <- c('A', 'B', 'C', 'D', 'E')
y <- c('C', 'D', 'E', 'F')

#find intersection between two vectors
intersect(x,y)

[1] “C” “D” “E”

Pelo resultado, podemos ver que os vetores x e y possuem três strings em comum: C , D e E.

Observe que os dois vetores não precisam ter o mesmo comprimento para que a função intersect() funcione.

Exemplo 2: Use intersect() com quadros de dados

Para encontrar as linhas que dois quadros de dados têm em comum, precisamos usar a função intersect() do pacote dplyr .

O código a seguir mostra como usar esta função para localizar linhas que dois quadros de dados têm em comum:

 library (dplyr) 

#define two data frames
df1 <- data. frame (team=c('A', 'A', 'B', 'B'),
                  dots=c(12, 20, 25, 19))

df1

  team points
1 to 12
2 to 20
3 B 25
4 B 19

df2 <- data. frame (team=c('A', 'A', 'B', 'C'),
                  dots=c(12, 22, 25, 32))

df2

  team points
1 to 12
2 to 22
3 B 25
4 C 32

#find intersection between two data frames
dplyr::intersect(df1, df2)

  team points
1 to 12
2 B 25

Pelo resultado, podemos ver que os frames de dados possuem duas linhas em comum.

Observe que esta função intersect() retornará apenas linhas que possuem os mesmos valores em cada coluna entre os dois quadros de dados.

Observe também que poderíamos usar a função length() com a função intersect() para simplesmente encontrar o número de linhas que os dois quadros de dados têm em comum:

 #find number of rows in common between the two data frames
length(dplyr::intersect(df1, df2))

[1] 2

Pelo resultado podemos ver que ambos os frames de dados possuem 2 linhas em comum.

Recursos adicionais

Os tutoriais a seguir explicam como usar outras funções comuns em R:

Como usar a função dim() em R
Como usar a função transform() em R
Como usar a função swep() em R

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *