คู่มือฉบับสมบูรณ์: วิธีใช้ sort(), order() และ rank() ใน r


ฟังก์ชันสามประการของ R ที่ผู้คนมักสับสนคือ การเรียงลำดับ การเรียงลำดับ และ การจัดอันดับ

นี่คือความแตกต่างระหว่างฟังก์ชันเหล่านี้:

  • sort() จะเรียงลำดับเวกเตอร์จากน้อยไปหามาก
  • order() จะส่งคืนดัชนีของแต่ละองค์ประกอบของเวกเตอร์ตามลำดับที่เรียงลำดับ
  • Rank() จะกำหนดอันดับให้กับแต่ละองค์ประกอบของเวกเตอร์ (น้อยที่สุด = 1)

ตัวอย่างต่อไปนี้แสดงวิธีใช้แต่ละฟังก์ชันเหล่านี้ในทางปฏิบัติ

ตัวอย่าง: ใช้ sort(), order() และ Rank() กับเวกเตอร์

รหัสต่อไปนี้แสดงวิธีการใช้ฟังก์ชัน sort() , order() และ Rank() กับเวกเตอร์สี่ค่า:

 #createvector
x <- c(0, 20, 10, 15)

#sort vector
sort(s)

[1] 0 10 15 20

#order vector
order(s)

[1] 1 3 4 2

#rank vector
rank(x)

[1] 1 4 2 3

นี่คือสิ่งที่แต่ละฟังก์ชันทำ:

1. ฟังก์ชัน sort() เพียงจัดเรียงค่าเวกเตอร์จากน้อยไปหามาก

2. ฟังก์ชัน order() ส่งคืนดัชนีของแต่ละองค์ประกอบตามลำดับที่เรียงลำดับ

  • หากคุณใส่ค่าเวกเตอร์ดั้งเดิมตามลำดับตามค่าดัชนีเหล่านี้ คุณจะได้เวกเตอร์ที่เรียงลำดับ
  • ตัวอย่างเช่น order() บอกให้เราใส่ค่าที่ตำแหน่งดัชนี 1 ก่อน นั่นคือ 0 ในเวกเตอร์ดั้งเดิม
  • จากนั้น order() บอกให้เราใส่ค่าที่ตำแหน่งดัชนี 3 ซึ่งก็คือ 10 ในเวกเตอร์ดั้งเดิม
  • จากนั้น order() บอกให้เราใส่ค่าที่ตำแหน่งดัชนี 4 ซึ่งก็คือ 15 ในเวกเตอร์ดั้งเดิม
  • จากนั้น order() บอกให้เราใส่ค่าที่ตำแหน่งดัชนี 2 ซึ่งก็คือ 20 ในเวกเตอร์ดั้งเดิม
  • ผลลัพธ์ที่ได้คือเวกเตอร์ที่เรียงลำดับ – 0, 10, 15, 20

3. ฟังก์ชัน Rank() กำหนดอันดับให้กับแต่ละองค์ประกอบของเวกเตอร์ โดยใช้ 1 สำหรับค่าที่น้อยที่สุด

  • ตัวอย่างเช่น Rank() บอกเราว่าค่าแรกของเวกเตอร์ดั้งเดิมนั้นน้อยที่สุด (อันดับ = 1) และค่าที่สองของเวกเตอร์ดั้งเดิมนั้นใหญ่ที่สุด (อันดับ = 4)

โปรดทราบว่าเราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อใช้ sort() , order() และ rank() ในลำดับย้อนกลับ:

 #createvector
x <- c(0, 20, 10, 15)

#sort vector in decreasing order
sort(x, decreasing= TRUE )

[1] 20 15 10 0

#order vector in decreasing order
order(x, decreasing= TRUE )

[1] 2 4 3 1

#rank vector in reverse order (largest value = 1)
rank(-x)

[1] 4 1 3 2

โปรดทราบว่าผลลัพธ์เหล่านี้ตรงกันข้ามกับผลลัพธ์ที่เกิดขึ้นในตัวอย่างก่อนหน้านี้ทุกประการ

หมายเหตุ: วิธีจัดการกับความสัมพันธ์ด้วยฟังก์ชัน Rank()

เราสามารถใช้อาร์กิวเมนต์ tie.method เพื่อระบุวิธีที่เราควรจัดการกับความสัมพันธ์เมื่อใช้ฟังก์ชัน Rank() :

 rank(x, ties. method = ' average ')

คุณสามารถใช้ตัวเลือกใดตัวเลือกหนึ่งต่อไปนี้เพื่อระบุวิธีจัดการลิงก์:

  • เฉลี่ย : (ค่าเริ่มต้น) กำหนดอันดับเฉลี่ยให้กับแต่ละรายการที่เชื่อมโยง (รายการอันดับ 3 และ 4 ทั้งคู่จะได้รับอันดับ 3.5)
  • first : กำหนดองค์ประกอบที่เชื่อมโยงแรกให้กับอันดับต่ำสุด (องค์ประกอบที่อยู่ในอันดับที่ 3 และ 4 จะได้รับอันดับที่ 3 และ 4 ตามลำดับ)
  • min : กำหนดแต่ละรายการที่เชื่อมโยงไปยังอันดับต่ำสุด (รายการอันดับ 3 และ 4 ทั้งคู่จะได้รับอันดับ 3)
  • max : กำหนดอันดับสูงสุดให้กับแต่ละรายการที่เชื่อมโยง (รายการอันดับ 3 และ 4 ทั้งคู่จะได้รับอันดับ 4)
  • สุ่ม : กำหนดอันดับสุ่มให้กับแต่ละองค์ประกอบที่ผูกกัน (องค์ประกอบใด ๆ ที่เชื่อมโยงกับตำแหน่งที่ 3 และ 4 สามารถรับอันดับใดอันดับหนึ่งได้)

วิธีใดวิธีหนึ่งเหล่านี้อาจเหมาะสมกว่าการใช้วิธีอื่น ทั้งนี้ขึ้นอยู่กับสถานการณ์ของคุณ

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการทั่วไปอื่นๆ ใน R:

วิธีจัดเรียงตามหลายคอลัมน์ใน R
วิธีจัดเรียง data frame ตามวันที่ใน R
วิธีการคำนวณอันดับเปอร์เซ็นไทล์ใน R

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

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