จัดเรียง DataFrame ใน R

Cad Reiyng Dataframe Ni R



การจัดเรียง DataFrames ใน R เป็นการดำเนินการที่สำคัญอย่างยิ่งในการวิเคราะห์และจัดการข้อมูล ที่สำคัญ R ให้ความยืดหยุ่นอย่างมากในการจัดเรียงข้อมูลตามหลายคอลัมน์และเรียงลำดับจากน้อยไปมากหรือจากมากไปน้อย ใน R การเรียงลำดับ DataFrames สามารถทำได้โดยใช้วิธีการและฟังก์ชันที่หลากหลาย ในบทความนี้ เราจะพูดถึงฟังก์ชันต่างๆ ที่ช่วยให้เราจัดเรียง DataFrame ตามลำดับที่ระบุ

ตัวอย่างที่ 1: การเรียงลำดับ DataFrame โดยใช้วิธี Order() ใน R

ฟังก์ชัน order() ใน R ใช้เพื่อจัดเรียง DataFrames ตามหนึ่งหรือหลายคอลัมน์ ฟังก์ชันลำดับได้รับดัชนีของแถวที่จัดเรียงเพื่อจัดเรียงแถวของ DataFrame ใหม่

ใบรับรอง = ข้อมูล. กรอบ ( ชื่อ = ( 'แอนดี้' , 'เครื่องหมาย' , 'บอนนี่' , 'แคโรไลน์' , 'จอห์น' ) ,

อายุ = ( ยี่สิบเอ็ด , 23 , 29 , 25 , 32 ) ,

เงินเดือน = ( 2543 , 1,000 , 1500 , 3000 , 2500 ) )

แมว ( ' \n \n Dataframe เรียงตามชื่อจากน้อยไปหามาก \n ' )

sorted_asc = ใบรับรอง [ กับ ( ใบรับรอง , คำสั่ง ( ชื่อ ) ) , ]

พิมพ์ ( sorted_asc )

ที่นี่ เรากำหนด DataFrame “emp” ด้วยสามคอลัมน์ที่มีค่าต่างกัน มีการใช้ฟังก์ชัน cat() เพื่อพิมพ์คำสั่งเพื่อระบุว่า DataFrame 'emp' ตามคอลัมน์ 'ชื่อ' เรียงจากน้อยไปหามากกำลังจะถูกจัดเรียง สำหรับสิ่งนี้ เราใช้ฟังก์ชัน order() ใน R ซึ่งจะส่งคืนตำแหน่งดัชนีของค่าในเวกเตอร์ที่เรียงลำดับจากน้อยไปหามาก ในกรณีนี้ ฟังก์ชัน with() ระบุว่าควรจัดเรียงคอลัมน์ 'ชื่อ' DataFrame ที่เรียงลำดับจะถูกจัดเก็บไว้ในตัวแปร “sorted_asc” ซึ่งส่งผ่านเป็นอาร์กิวเมนต์ในฟังก์ชัน print() เพื่อพิมพ์ผลลัพธ์ที่เรียงลำดับ







ดังนั้น ผลลัพธ์ที่จัดเรียงของคอลัมน์ DataFrame ตาม 'ชื่อ' ตามลำดับจะแสดงดังต่อไปนี้ ในการรับการดำเนินการเรียงลำดับจากมากไปน้อย เราสามารถระบุเครื่องหมายลบด้วยชื่อคอลัมน์ในฟังก์ชัน order() ก่อนหน้า:





ตัวอย่างที่ 2: การเรียงลำดับ DataFrame โดยใช้พารามิเตอร์เมธอด Order() ใน R

นอกจากนี้ ฟังก์ชัน order() รับอาร์กิวเมนต์การลดลงเพื่อจัดเรียง DataFrame ในตัวอย่างต่อไปนี้ เราระบุฟังก์ชัน order() ด้วยอาร์กิวเมนต์เพื่อเรียงลำดับการเพิ่มหรือลด:





ดีเอฟ = ข้อมูล. กรอบ (

รหัส = ( 1 , 3 , 4 , 5 , 2 ) ,

คอร์ส = ( 'งูหลาม' , 'ชวา' , 'ซี++' , 'มอนโกดีบี' , 'ร' ) )

พิมพ์ ( 'เรียงตามลำดับที่ลดลงตาม ID' )

พิมพ์ ( ดีเอฟ [ คำสั่ง ( df$รหัส , ลดลง = จริง ) , ] )

ในขั้นแรก เราจะประกาศตัวแปร “df” โดยที่ฟังก์ชัน data.frame() ถูกกำหนดด้วยคอลัมน์ที่แตกต่างกันสามคอลัมน์ ต่อไป เราใช้ฟังก์ชัน print() ที่เราพิมพ์ข้อความเพื่อระบุว่า DataFrame จะถูกจัดเรียงโดยเรียงลำดับจากมากไปน้อยตามคอลัมน์ 'id' หลังจากนั้น เราปรับใช้ฟังก์ชัน print() อีกครั้งเพื่อดำเนินการเรียงลำดับและพิมพ์ผลลัพธ์เหล่านั้น ภายในฟังก์ชัน print() เราเรียกฟังก์ชัน 'order' เพื่อจัดเรียง DataFrame 'df' ตามคอลัมน์ 'course' อาร์กิวเมนต์ 'ลดลง' ถูกตั้งค่าเป็น TRUE เพื่อเรียงลำดับจากมากไปน้อย

ในภาพประกอบต่อไปนี้ คอลัมน์ 'รหัส' ของ DataFrame จัดเรียงจากมากไปหาน้อย:



อย่างไรก็ตาม เพื่อให้ได้ผลลัพธ์การเรียงลำดับจากน้อยไปมาก เราต้องตั้งค่าอาร์กิวเมนต์การลดลงของฟังก์ชัน order() เป็น FALSE ดังที่แสดงต่อไปนี้:

พิมพ์ ( 'จัดเรียงตามลำดับที่เพิ่มขึ้นตาม ID' )

พิมพ์ ( ดีเอฟ [ คำสั่ง ( df$รหัส , ลดลง = เท็จ ) , ] )

ที่นั่น เราได้รับผลลัพธ์ของการดำเนินการจัดเรียงของ DataFrame ตามคอลัมน์ 'id' ตามลำดับจากน้อยไปหามาก

ตัวอย่างที่ 3: การเรียงลำดับ DataFrame โดยใช้วิธี Arrange() ใน R

นอกจากนี้ เรายังสามารถใช้เมธอด sort() เพื่อจัดเรียง DataFrame ตามคอลัมน์ได้อีกด้วย เรายังสามารถเรียงลำดับจากน้อยไปหามากหรือมากไปหาน้อย รหัส R ที่กำหนดต่อไปนี้ใช้ฟังก์ชัน sort() :

ห้องสมุด ( 'dplyr' )

นักเรียน = ข้อมูล. กรอบ (

รหัส = ( 3 , 5 , 2 , 4 , 1 ) ,

เครื่องหมาย = ( 70 , 90 , 75 , 88 , 92 ) )

พิมพ์ ( 'เพิ่มการเรียงลำดับตามรหัส' )

พิมพ์ ( จัด ( นักเรียน , รหัส ) )

ที่นี่ เราโหลดแพ็คเกจ “dplyr” ของ R เพื่อเข้าถึงวิธีการ sort() สำหรับการเรียงลำดับ จากนั้น เรามีฟังก์ชัน data.frame() ซึ่งมี 2 คอลัมน์ และตั้งค่า DataFrame เป็นตัวแปร “student” ต่อไป เราใช้ฟังก์ชัน sort() จากแพ็คเกจ 'dplyr' ในฟังก์ชัน print() เพื่อจัดเรียง DataFrame ที่กำหนด ฟังก์ชัน sort() ใช้ DataFrame 'student' เป็นอาร์กิวเมนต์แรก ตามด้วย 'Id' ของคอลัมน์ที่ต้องการจัดเรียง ฟังก์ชัน print() ในตอนท้ายจะพิมพ์ DataFrame ที่เรียงลำดับไปยังคอนโซล

เราสามารถดูว่าคอลัมน์ 'Id' เรียงตามลำดับในผลลัพธ์ต่อไปนี้:

ตัวอย่างที่ 4: การเรียงลำดับ DataFrame ตามวันที่ใน R

DataFrame ใน R ยังสามารถจัดเรียงตามค่าวันที่ได้อีกด้วย สำหรับสิ่งนี้ ต้องระบุฟังก์ชันการเรียงลำดับด้วยฟังก์ชัน as.date() เพื่อจัดรูปแบบวันที่

เหตุการณ์_วันที่ = ข้อมูล. กรอบ ( เหตุการณ์ = ( '3/4/2566' , '2/2/2566' ,

'10/1/2023' , '3/29/2023' ) ,

ค่าใช้จ่าย = ( 3100 , 2200 , 1,000 , 2900 ) )

เหตุการณ์_วันที่ [ คำสั่ง ( เช่น . วันที่ ( event_date$เหตุการณ์ , รูปแบบ = '%d/%m/%Y' ) ) , ]

ที่นี่ เรามี DataFrame “event_date” ซึ่งมีคอลัมน์ “event” พร้อมสตริงวันที่ในรูปแบบ “เดือน/วัน/ปี” เราจำเป็นต้องจัดเรียงสตริงวันที่เหล่านี้ตามลำดับจากน้อยไปหามาก เราใช้ฟังก์ชัน order() ซึ่งจะจัดเรียง DataFrame ตามคอลัมน์ 'เหตุการณ์' ตามลำดับจากน้อยไปหามาก เราทำสิ่งนี้ได้โดยแปลงสตริงวันที่ในคอลัมน์ 'เหตุการณ์' เป็นวันที่จริงโดยใช้ฟังก์ชัน 'as.Date' และระบุรูปแบบของสตริงวันที่โดยใช้พารามิเตอร์ 'format'

ดังนั้นเราจึงแสดงข้อมูลที่จัดเรียงตามคอลัมน์วันที่ 'เหตุการณ์' ตามลำดับจากน้อยไปหามาก

ตัวอย่างที่ 5: การเรียงลำดับ DataFrame โดยใช้วิธี Setorder() ใน R

ในทำนองเดียวกัน setorder() ก็เป็นอีกวิธีในการจัดเรียง DataFrame มันจัดเรียง DataFrame โดยใช้อาร์กิวเมนต์เหมือนกับวิธีการ sort() รหัส R สำหรับ setorder() วิธีการได้รับดังต่อไปนี้:

ห้องสมุด ( 'ตารางข้อมูล' )

d1 = ข้อมูล. กรอบ ( รหัสคำสั่งซื้อ = ( 1 , 4 , 2 , 5 , 3 ) ,

รายการสั่งซื้อ = ( 'แอปเปิล' , 'ส้ม' , 'กีวี่' , 'มะม่วง' , 'กล้วย' ) )

พิมพ์ ( ชุดคำสั่ง ( d1 , รายการสั่งซื้อ ) )

ที่นี่ เราตั้งค่าไลบรารี data.table ก่อนเนื่องจาก setorder() เป็นฟังก์ชันของแพ็คเกจนี้ จากนั้น เราใช้ฟังก์ชัน data.frame() เพื่อสร้าง DataFrame DataFrame ถูกระบุโดยมีเพียงสองคอลัมน์ที่เราใช้ในการจัดเรียง หลังจากนี้ เราตั้งค่าฟังก์ชัน setorder() ภายในฟังก์ชัน print() ฟังก์ชัน setorder() ใช้ DataFrame “d1” เป็นพารามิเตอร์แรกและคอลัมน์ “orderId” เป็นพารามิเตอร์ที่สองซึ่งจัดเรียง DataFrame ฟังก์ชัน “setorder” จะจัดเรียงแถวของตารางข้อมูลใหม่ตามลำดับจากน้อยไปหามากตามค่าในคอลัมน์ “orderId”

DataFrame ที่เรียงลำดับคือเอาต์พุตในคอนโซลต่อไปนี้ของ R:

ตัวอย่างที่ 6: การเรียงลำดับ DataFrame โดยใช้วิธี Row.Names() ใน R

เมธอด row.names() เป็นวิธีการจัดเรียง DataFrame ใน R เช่นกัน row.names() จัดเรียง DataFrames ตามแถวที่ระบุ

ดีเอฟ < - ข้อมูล. กรอบ ( ทีม = ( 'เอ็กซ์' , 'เอ็กซ์' , 'และ' , 'และ' , 'กับ' ) ,

คะแนน = ( 91 , 80 , 86 , 83 , 95 ) )

แถว. ชื่อ ( ดีเอฟ ) < - ค ( 'เอ' , 'ดี' , 'ค' , 'และ' , 'บี' )

ดีเอฟ [ คำสั่ง ( แถว. ชื่อ ( ดีเอฟ ) ) , ]

ที่นี่ ฟังก์ชัน data.frame() ถูกสร้างขึ้นภายในตัวแปร 'df' ซึ่งมีการระบุคอลัมน์ด้วยค่าต่างๆ จากนั้น ชื่อแถวของ DataFrame จะถูกระบุโดยใช้ฟังก์ชัน row.names() หลังจากนั้นเราก็เรียกใช้ฟังก์ชัน order() เพื่อจัดเรียง DataFrame ตามชื่อแถว ฟังก์ชัน order() จะส่งคืนดัชนีของแถวที่จัดเรียงซึ่งใช้ในการจัดระเบียบแถวของ DataFrame ใหม่

ผลลัพธ์แสดง DataFrame ที่จัดเรียงตามแถวตามตัวอักษร:

บทสรุป

เราได้เห็นฟังก์ชันต่างๆ ในการจัดเรียง DataFrames ใน R แต่ละวิธีมีข้อได้เปรียบและต้องการการดำเนินการเรียงลำดับ มีวิธีหรือวิธีการจัดเรียง DataFrame ในภาษา R มากกว่านี้ แต่เมธอด order() sort() และ setorder() เป็นวิธีที่สำคัญที่สุดและใช้งานง่ายสำหรับการเรียงลำดับ