ตอบ: คำแนะนำฉบับสมบูรณ์เกี่ยวกับ 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

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *