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


A função dist() em R pode ser usada para calcular uma matriz de distância, que exibe as distâncias entre linhas em uma matriz ou quadro de dados.

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

dist(x, método=”Euclidiano”)

Ouro:

  • x: o nome da matriz ou bloco de dados.
  • método: A medição de distância a ser usada. O padrão é “Euclidiano”, mas as opções incluem “máximo”, “manhattan”, “canberra”, “binário” ou “minkowski”.

Os exemplos a seguir mostram como usar esta função na prática com o seguinte quadro de dados:

 #define four vectors
a <- c(2, 4, 4, 6)
b <- c(5, 5, 7, 8)
c <- c(9, 9, 9, 8)
d <- c(1, 2, 3, 3)

#row bind four vectors into matrix
mat <- rbind(a, b, c, d)

#view matrix
mast

  [,1] [,2] [,3] [,4]
a 2 4 4 6
b 5 5 7 8
c 9 9 9 8
d 1 2 3 3

Exemplo 1: Use dist() para calcular a distância euclidiana

A distância euclidiana entre dois vetores A e B é calculada da seguinte forma:

Distância euclidiana = √ Σ(A i -B i ) 2

O código a seguir mostra como calcular uma matriz de distância que mostra a distância euclidiana entre cada linha de uma matriz em R:

 #calculate Euclidean distance between each row in matrix
dist(mat)

          ABC
b4.795832                    
c 10.148892 6.000000          
d 3.872983 8.124038 13.190906

Veja como interpretar o resultado:

  • A distância euclidiana entre a linha a e a linha b é 4,795832 .
  • A distância euclidiana entre a linha a e a linha c é 10,148892 .
  • A distância euclidiana entre a linha a e a linha d é 3,872983 .
  • A distância euclidiana entre a linha b e a linha c é 6,000000 .
  • A distância euclidiana entre a linha b e a linha d é 8,124038 .
  • A distância euclidiana entre a linha c e a linha d é 13,190906 .

Exemplo 2: Use dist() para calcular a distância máxima

A distância máxima entre dois vetores, A e B, é calculada como a diferença máxima entre todos os elementos aos pares.

O código a seguir mostra como calcular uma matriz de distância que exibe a distância máxima entre cada linha de uma matriz em R:

 #calculate Maximum distance between each row in matrix
dist(mat, method=" maximum ")

  ABC
b 3    
c 7 4  
d 3 5 8

Exemplo 3: Use dist() para calcular a distância de Camberra

A distância de Canberra entre dois vetores A e B é calculada da seguinte forma:

Distância de Camberra = Σ |A i -B i | / | IA | + | Bje |

O código a seguir mostra como calcular uma matriz de distância que mostra a distância de Canberra entre cada linha de uma matriz em R:

 #calculate Canberra distance between each row in matrix
dist(mat, method=" canberra ")

          ABC
b 0.9552670                    
c 1.5484515 0.6964286          
d 1.1428571 1.9497835 2.3909091

Exemplo 4: Use dist() para calcular a distância binária

A distância binária entre dois vetores, A e B, é calculada como a proporção de elementos que os dois vetores compartilham.

O código a seguir mostra como calcular uma matriz de distância que mostra a distância binária entre cada linha de uma matriz em R:

 #calculate Binary distance between each row in matrix
dist(mat, method=" binary ")

  ABC
b 0    
c 0 0  
d 0 0 0

Exemplo 5: Use dist() para calcular a distância de Minkowski

A distância de Minkowski entre dois vetores A e B é calculada da seguinte forma:

Distância de Minkowski = (Σ|a i – b i | p ) 1/p

onde i é o i- ésimo elemento de cada vetor e p é um número inteiro.

O código a seguir mostra como calcular uma matriz de distância que mostra a distância de Minkowski (usando p=3) entre cada linha de uma matriz em R:

 #calculate Minkowski distance between each row in matrix
dist(mat, method=" minkowski ", p= 3 )

          ABC
b 3.979057                    
c 8.439010 5.142563          
d 3.332222 6.542133 10.614765

Recursos adicionais

Como calcular a similaridade de Jaccard em R
Como calcular a similaridade de cosseno em R
Como calcular o produto escalar em R

Add a Comment

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