Как рассчитать евклидово расстояние в R (с примерами)


Евклидово расстояние между двумя векторами, A и B, рассчитывается как:

Евклидово расстояние = √ Σ(A i -B i ) 2

Чтобы вычислить евклидово расстояние между двумя векторами в R, мы можем определить следующую функцию:

euclidean <- function (a, b) sqrt ( sum ((a - b)^2))

Затем мы можем использовать эту функцию, чтобы найти евклидово расстояние между любыми двумя векторами:

#define two vectors
a <- c(2, 6, 7, 7, 5, 13, 14, 17, 11, 8)
b <- c(3, 5, 5, 3, 7, 12, 13, 19, 22, 7)

#calculate Euclidean distance between vectors
euclidean(a, b)

[1] 12.40967

Евклидово расстояние между двумя векторами оказывается равным 12,40967 .

Обратите внимание, что мы также можем использовать эту функцию для вычисления евклидова расстояния между двумя столбцами фрейма данных:

#define data frame
df <- data.frame(a=c(3, 4, 4, 6, 7, 14, 15),
 b=c(4, 8, 8, 9, 14, 13, 7),
 c=c(7, 7, 8, 5, 15, 11, 8),
 d=c(9, 6, 6, 7, 6, 15, 19))

#calculate Euclidean distance between columns *a* and *d*
euclidean(df$a, df$d)

[1] 7.937254

Обратите внимание, что эта функция выдаст предупреждающее сообщение, если два вектора имеют разную длину:

#define two vectors of unequal length
a <- c(2, 6, 7, 7, 5, 13, 14)
b <- c(3, 5, 5, 3, 7, 12, 13, 19, 22, 7)

#attempt to calculate Euclidean distance between vectors
euclidean(a, b)

[1] 23.93742
Warning message:
In a - b : longer object length is not a multiple of shorter object length

Вы можете обратиться к этой странице Википедии, чтобы узнать больше о евклидовом расстоянии.

Дополнительные ресурсы

Как рассчитать манхэттенское расстояние в R
Как рассчитать расстояние Минковского в R
Как рассчитать расстояние Хэмминга в R
Как рассчитать расстояние Махаланобиса в R
Как рассчитать расстояние Левенштейна в R