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