كيفية حساب المسافة الإقليدية بوحدة 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 euclid(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 euclid(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 euclid(a, b) [1] 23.93742 Warning message: In a - b: longer object length is not a multiple of shorter object length
يمكنك الرجوع إلى صفحة ويكيبيديا هذه لمعرفة المزيد حول المسافة الإقليدية.
مصادر إضافية
كيفية حساب المسافة من مانهاتن في R
كيفية حساب مسافة مينكوفسكي في R
كيفية حساب مسافة هامينغ في R
كيفية حساب مسافة Mahalanobis في R
كيفية حساب مسافة Levenshtein في R