Як використовувати функцію dist у r (з прикладами)
Функцію dist() у R можна використовувати для обчислення матриці відстані, яка відображає відстані між рядками в матриці або кадрі даних.
Ця функція використовує такий базовий синтаксис:
dist(x, method=”Euclidean”)
золото:
- x: назва матриці або блоку даних.
- Метод: вимірювання відстані для використання. За замовчуванням встановлено «Евклідове», але параметри включають «максимум», «манхеттен», «канберра», «двійковий» або «мінковський».
У наведених нижче прикладах показано, як використовувати цю функцію на практиці з таким кадром даних:
#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
Приклад 1: використовуйте dist() для обчислення евклідової відстані
Евклідова відстань між двома векторами A і B обчислюється наступним чином:
Евклідова відстань = √ Σ(A i -B i ) 2
Наступний код показує, як обчислити матрицю відстані, яка показує евклідову відстань між кожним рядком матриці в 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
Ось як інтерпретувати результат:
- Евклідова відстань між прямими a і b дорівнює 4,795832 .
- Евклідова відстань між прямими a і c дорівнює 10,148892 .
- Евклідова відстань між прямою a і d дорівнює 3,872983 .
- Евклідова відстань між прямою b і прямою c дорівнює 6,000000 .
- Евклідова відстань між прямою b і d дорівнює 8,124038 .
- Евклідова відстань між прямою c і d дорівнює 13,190906 .
Приклад 2: використовуйте dist() для обчислення максимальної відстані
Максимальна відстань між двома векторами, A і B, обчислюється як максимальна різниця між усіма попарними елементами.
Наступний код показує, як обчислити матрицю відстані, яка відображає максимальну відстань між кожним рядком матриці в R:
#calculate Maximum distance between each row in matrix dist(mat, method=" maximum ") ABC b 3 c 7 4 d 3 5 8
Приклад 3: Використовуйте dist(), щоб обчислити відстань від Канберри
Відстань Канберра між двома векторами A і B обчислюється наступним чином:
Відстань від Канберри = Σ |A i -B i | / | ШІ | + | Bje |
Наступний код показує, як обчислити матрицю відстані, яка показує відстань Канберра між кожним рядком матриці в 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
Приклад 4: використовуйте dist() для обчислення двійкової відстані
Двійкова відстань між двома векторами, A і B, обчислюється як частка елементів, спільних для двох векторів.
Наступний код показує, як обчислити матрицю відстані, яка показує двійкову відстань між кожним рядком матриці в R:
#calculate Binary distance between each row in matrix dist(mat, method=" binary ") ABC b 0 c 0 0 d 0 0 0
Приклад 5: використовуйте dist() для обчислення відстані Мінковського
Відстань Мінковського між двома векторами A і B обчислюється наступним чином:
Відстань Мінковського = (Σ|a i – b i | p ) 1/p
де i — i -й елемент кожного вектора, а p — ціле число.
Наступний код показує, як обчислити матрицю відстані, яка показує відстань Мінковського (використовуючи p=3) між кожним рядком матриці в 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
Додаткові ресурси
Як обчислити подібність Жаккара в R
Як обчислити подібність косинуса в R
Як обчислити скалярний добуток у R