วิธีจัดเรียงเส้นใน r
บ่อยครั้ง คุณอาจต้องการจัดเรียงแถวของกรอบข้อมูลใน R ตามลำดับเฉพาะ โชคดีที่ทำได้ง่ายโดยใช้ฟังก์ชัน Arrange() จากไลบรารี dplyr
บทช่วยสอนนี้จะอธิบายตัวอย่างการใช้งานจริงของฟังก์ชันนี้หลายตัวอย่างโดยใช้กรอบข้อมูลต่อไปนี้:
#create data frame df <- data.frame(player = c('A', 'B', 'C', 'D', 'E', 'F', 'G'), points = c(12, 14, 14, 15, 20, 18, 29), assists = c(3, 5, 7, 8, 14, NA, 9)) #view data frame df player points assists 1 to 12 3 2 B 14 5 3 C 14 7 4 D 15 8 5 E 20 14 6 F 18 NA 7 G 29 9
ตัวอย่างที่ 1: จัดระเบียบตามคอลัมน์
รหัสต่อไปนี้แสดงวิธีจัดเรียงกรอบข้อมูลตามลำดับจากน้อยไปหามากโดยยึดตามค่าในคอลัมน์ “จุด”:
library(dplyr) df %>% arrange(points) player points assists 1 to 12 3 2 B 14 5 3 C 14 7 4 D 15 8 5 F 18 NA 6 E 20 14 7 G 29 9
หากต้องการเรียงลำดับจากมากไปน้อย คุณสามารถใช้ฟังก์ชัน desc() ได้:
df %>% arrange( desc (dots))
player points assists
1 G 29 9
2 E 20 14
3 F 18 NA
4 D 15 8
5 B 14 5
6 C 14 5
7 to 12 3
โปรดทราบว่า NA จะถูกจัดเรียงจนถึงจุดสิ้นสุดไม่ว่าคุณจะเรียงลำดับจากน้อยไปหามากหรือจากมากไปหาน้อย:
df %>% arrange(assists)
player points assists
1 to 12 3
2 B 14 5
3 C 14 7
4 D 15 8
5 G 29 9
6 E 20 14
7 F 18 NA
df %>% arrange( desc (assists))
player points assists
1 E 20 14
2 G 29 9
3 D 15 8
4 C 14 7
5 B 14 5
6 to 12 3
7 F 18 NA
ตัวอย่างที่ 2: จัดเรียงหลายคอลัมน์
หากต้องการจัดเรียงแถวในหลายคอลัมน์ เราสามารถระบุชื่อคอลัมน์เพิ่มเติมเป็นอาร์กิวเมนต์ได้:
#sort by points, then assists
df %>% arrange(points, assists)
player points assists
1 to 12 3
2 B 14 5
3 C 14 7
4 D 15 8
5 F 18 NA
6 E 20 14
7 G 29 9
นอกจากนี้เรายังสามารถจัดเรียงแถวตามคอลัมน์จากน้อยไปหามากและคอลัมน์จากมากไปหาน้อย:
#sort by points ascending, then assists descending df %>% arrange(points, desc (assists)) player points assists 1 to 12 3 2 C 14 7 3 B 14 5 4 D 15 8 5 F 18 NA 6 E 20 14 7 G 29 9
ตัวอย่างที่ 3: จัดเรียงแถวตามลำดับที่กำหนดเอง
บางครั้งคุณอาจต้องการเรียงลำดับแถวตามลำดับที่กำหนดเอง คุณสามารถทำสิ่งนี้ได้อย่างง่ายดายโดยใช้ปัจจัยที่มีระดับเฉพาะ:
#sort by player with custom order df %>% arrange( factor (player, levels = c('D', 'C', 'A', 'B', 'E', 'F', 'G'))) player points assists 1 D 15 8 2 C 14 7 3 to 12 3 4 B 14 5 5 E 20 14 6 F 18 NA 7 G 29 9
คุณสามารถดูเอกสารฉบับเต็มเกี่ยวกับฟังก์ชัน Arrange() ได้ที่นี่