ตอบ: คำแนะนำฉบับสมบูรณ์เกี่ยวกับ tie.method ในฟังก์ชันการจัดอันดับ
คุณสามารถใช้ฟังก์ชัน Rank() ในฐาน R เพื่อส่งคืนอันดับของค่าในเวกเตอร์
ฟังก์ชันนี้ใช้ไวยากรณ์พื้นฐานต่อไปนี้:
อันดับ (x, na.last=TRUE,ties.method=”เฉลี่ย”)
ทอง:
- x : เวกเตอร์ที่มีค่าที่จะจำแนก
- na.last : ถ้าเป็น TRUE ค่าที่หายไปจะถูกใส่ไว้ท้ายสุด หากเป็น FALSE ค่าที่หายไปจะถูกใส่ไว้ก่อน
- tie.method : วิธีจัดการกับความสัมพันธ์ (ค่าเริ่มต้นคือ “เฉลี่ย”)
อาร์กิวเมนต์ Ties.method ของฟังก์ชัน Rank() ระบุว่าควรจัดการความสัมพันธ์อย่างไร
อาร์กิวเมนต์นี้ยอมรับตัวเลือกต่อไปนี้:
- เฉลี่ย : (ค่าเริ่มต้น) กำหนดอันดับเฉลี่ยให้กับแต่ละรายการที่เชื่อมโยง (รายการอันดับ 3 และ 4 ทั้งคู่จะได้รับอันดับ 3.5)
- first : กำหนดองค์ประกอบที่เชื่อมโยงแรกให้กับอันดับต่ำสุด (องค์ประกอบที่อยู่ในอันดับที่ 3 และ 4 จะได้รับอันดับที่ 3 และ 4 ตามลำดับ)
- Last : กำหนดองค์ประกอบที่เชื่อมโยงสุดท้ายให้กับอันดับต่ำสุด (องค์ประกอบอันดับที่ 3 และ 4 จะได้รับอันดับ 4 และ 3 ตามลำดับ)
- min : กำหนดแต่ละรายการที่เชื่อมโยงไปยังอันดับต่ำสุด (รายการอันดับ 3 และ 4 ทั้งคู่จะได้รับอันดับ 3)
- max : กำหนดอันดับสูงสุดให้กับแต่ละรายการที่เชื่อมโยง (รายการอันดับ 3 และ 4 ทั้งคู่จะได้รับอันดับ 4)
- สุ่ม : กำหนดอันดับสุ่มให้กับแต่ละองค์ประกอบที่ผูกกัน (องค์ประกอบใดองค์ประกอบหนึ่งที่เชื่อมโยงกับตำแหน่งที่ 3 และ 4 สามารถรับอันดับใดอันดับหนึ่งได้)
ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละตัวเลือกในทางปฏิบัติกับกรอบข้อมูลต่อไปนี้ใน R:
#create data frame df <- data. frame (player=c('A', 'B', 'C', 'D', 'E'), dots=c(5, 8, 10, 10, 17)) #view data frame df player points 1 to 5 2 B 8 3 C 10 4 D 10 5 E 17
ตัวอย่างที่ 1: ใช้ Rank() กับ Ties.method=”average”
รหัสต่อไปนี้แสดงวิธีสร้างคอลัมน์ใหม่ที่ใช้ Rank() พร้อมด้วย Ties.method=”average” เพื่อกำหนดอันดับให้กับผู้เล่นแต่ละคนตามค่าของคอลัมน์ คะแนน :
#create new column that ranks players based on their points value df$points_rank = rank(df$points, ties. method = “ average ”) #view updated data frame df player points points_rank 1 to 5 1.0 2 B 8 2.0 3 C 10 3.5 4 D 10 3.5 5 E 17 5.0
เนื่องจากผู้เล่น C และ D มีจำนวนคะแนนเท่ากันและอยู่ในตำแหน่ง 3 และ 4 พวกเขาทั้งสองจึงได้รับค่าเฉลี่ยอันดับ: 3.5
ตัวอย่างที่ 2: ใช้ Rank() กับ Ties.method=”first”
รหัสต่อไปนี้แสดงวิธีสร้างคอลัมน์ใหม่ที่ใช้ Rank() กับ Ties.method=”first” เพื่อกำหนดอันดับให้กับผู้เล่นแต่ละคนตามค่าของคอลัมน์ คะแนน :
#create new column that ranks players based on their points value df$points_rank = rank(df$points, ties. method = " first ") #view updated data frame df player points points_rank 1 to 5 1 2 B 8 2 3 C 10 3 4 D 10 4 5 E 17 5
เนื่องจากผู้เล่น C และ D มีจำนวนคะแนนเท่ากันและครอบครองตำแหน่ง 3 และ 4 ผู้เล่นคนแรกระหว่างสองคนนี้ (ผู้เล่น “C”) จะได้รับอันดับต่ำสุด
ตัวอย่างที่ 3: ใช้ Rank() กับ Ties.method=”last”
รหัสต่อไปนี้แสดงวิธีสร้างคอลัมน์ใหม่ที่ใช้ Rank() กับ Ties.method=”last” เพื่อกำหนดอันดับให้กับผู้เล่นแต่ละคนตามค่าของคอลัมน์ คะแนน :
#create new column that ranks players based on their points value df$points_rank = rank(df$points, ties. method = " last ") #view updated data frame df player points points_rank 1 to 5 1 2 B 8 2 3 C 10 4 4 D 10 3 5 E 17 5
เนื่องจากผู้เล่น C และ D มีจำนวนคะแนนเท่ากันและครอบครองตำแหน่ง 3 และ 4 ผู้เล่นคนสุดท้ายระหว่างสองคนนี้ (ผู้เล่น “D”) จึงได้รับอันดับต่ำสุด
ตัวอย่างที่ 4: ใช้ Rank() กับ Ties.method=”min”
รหัสต่อไปนี้แสดงวิธีสร้างคอลัมน์ใหม่ที่ใช้ Rank() พร้อมด้วย Ties.method=”min” เพื่อกำหนดอันดับให้กับผู้เล่นแต่ละคนตามค่าของคอลัมน์ คะแนน :
#create new column that ranks players based on their points value df$points_rank = rank(df$points, ties. method = " min ") #view updated data frame df player points points_rank 1 to 5 1 2 B 8 2 3 C 10 3 4 D 10 3 5 E 17 5
เนื่องจากผู้เล่น C และ D มีจำนวนคะแนนเท่ากันและอยู่ในตำแหน่ง 3 และ 4 ผู้เล่นทั้งสองจึงได้รับอันดับขั้นต่ำ: 3
ตัวอย่างที่ 5: ใช้ Rank() กับ Ties.method=”max”
รหัสต่อไปนี้แสดงวิธีสร้างคอลัมน์ใหม่ที่ใช้ Rank() พร้อมด้วย Ties.method=”max” เพื่อกำหนดอันดับให้กับผู้เล่นแต่ละคนตามค่าของคอลัมน์ คะแนน :
#create new column that ranks players based on their points value df$points_rank = rank(df$points, ties. method = " max ") #view updated data frame df player points points_rank 1 to 5 1 2 B 8 2 3 C 10 4 4 D 10 4 5 E 17 5
เนื่องจากผู้เล่น C และ D มีจำนวนคะแนนเท่ากันและอยู่ในตำแหน่ง 3 และ 4 ผู้เล่นทั้งสองจึงได้รับอันดับสูงสุด: 4
ตัวอย่างที่ 6: ใช้ Rank() กับ Ties.method=”random”
รหัสต่อไปนี้แสดงวิธีสร้างคอลัมน์ใหม่ที่ใช้ Rank() พร้อมด้วย Ties.method=”random” เพื่อกำหนดอันดับให้กับผู้เล่นแต่ละคนตามค่าของคอลัมน์ คะแนน :
#create new column that ranks players based on their points value df$points_rank = rank(df$points, ties. method = " random ") #view updated data frame df player points points_rank 1 to 5 1 2 B 8 2 3 C 10 4 4 D 10 3 5 E 17 5
เนื่องจากผู้เล่น C และ D มีจำนวนคะแนนเท่ากันและอยู่ในตำแหน่ง 3 และ 4 ผู้เล่นแต่ละคนจึงได้รับการสุ่มอันดับเป็น 3 หรือ 4
โปรดทราบว่าเมื่อคุณใช้ “random” สำหรับ tie.method อันดับที่กำหนดให้กับแต่ละค่าอาจเปลี่ยนแปลงทุกครั้งที่คุณเรียกใช้โค้ด
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการงานทั่วไปอื่นๆ ใน R:
วิธีใช้ sort(), order() และ Rank() ใน R
วิธีการคำนวณอันดับเปอร์เซ็นไทล์ใน R
วิธีจัดเรียงตามกลุ่มโดยใช้ dplyr