วิธีใช้ฟังก์ชัน dist ใน r (พร้อมตัวอย่าง)
ฟังก์ชัน dist() ใน R สามารถใช้คำนวณเมทริกซ์ระยะทาง ซึ่งแสดงระยะห่างระหว่างแถวในเมทริกซ์หรือกรอบข้อมูล
ฟังก์ชันนี้ใช้ไวยากรณ์พื้นฐานต่อไปนี้:
dist(x, วิธีการ =”ยุคลิด”)
ทอง:
- x: ชื่อของเมทริกซ์หรือบล็อกข้อมูล
- วิธี: การวัดระยะทางที่จะใช้ ค่าเริ่มต้นคือ “Euclidean” แต่ตัวเลือกต่างๆ ได้แก่ “maximum”, “manhattan”, “canberra”, “binary” หรือ “minkowski”
ตัวอย่างต่อไปนี้แสดงวิธีใช้ฟังก์ชันนี้ในทางปฏิบัติกับกรอบข้อมูลต่อไปนี้:
#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 | / | เอไอ | + | บีเจ |
รหัสต่อไปนี้แสดงวิธีคำนวณเมทริกซ์ระยะทางที่แสดงระยะห่างของแคนเบอร์ราระหว่างแต่ละแถวของเมทริกซ์ใน 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() เพื่อคำนวณระยะทาง Minkowski
ระยะห่าง Minkowski ระหว่างเวกเตอร์ A และ B สองตัวคำนวณได้ดังนี้:
ระยะทาง Minkowski = (Σ|a i – b i | p ) 1/p
โดยที่ i เป็น องค์ประกอบ ที่ i ของเวกเตอร์แต่ละตัว และ p เป็นจำนวนเต็ม
รหัสต่อไปนี้แสดงวิธีคำนวณเมทริกซ์ระยะทางที่แสดงระยะทาง Minkowski (โดยใช้ 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
แหล่งข้อมูลเพิ่มเติม
วิธีการคำนวณความคล้ายคลึงกันของ Jaccard ใน R
วิธีการคำนวณความคล้ายคลึงโคไซน์ใน R
วิธีการคำนวณผลคูณดอทใน R