Dplyr: วิธีสรุปข้อมูลแต่เก็บทุกคอลัมน์


เมื่อใช้ฟังก์ชัน summarise() ใน dplyr ตัวแปรใดๆ ที่ไม่รวมอยู่ในฟังก์ชัน summarise() หรือ group_by() จะถูกลบออกโดยอัตโนมัติ

อย่างไรก็ตาม คุณสามารถใช้ฟังก์ชัน mutate() เพื่อสรุปข้อมูลโดยที่ยังคงรักษาคอลัมน์ทั้งหมดในกรอบข้อมูลไว้ได้

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

ตัวอย่าง: สรุปข้อมูลแต่เก็บคอลัมน์ทั้งหมดโดยใช้ dplyr

สมมติว่าเรามีกรอบข้อมูลต่อไปนี้ซึ่งมีข้อมูลเกี่ยวกับผู้เล่นบาสเกตบอลต่างๆ:

 #create data frame
df <- data. frame (team=rep(c(' A ', ' B ', ' C '), each= 3 ),
                 points=c(4, 9, 8, 12, 15, 14, 29, 30, 22),
                 assists=c(3, 3, 2, 5, 8, 10, 4, 5, 12))

#view data frame
df

  team points assists
1 to 4 3
2 to 9 3
3 to 8 2
4 B 12 5
5 B 15 8
6 B 14 10
7 C 29 4
8 C 30 5
9 C 22 12

เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อสรุป คะแนน เฉลี่ยต่อ ทีม :

 library (dplyr)

#summarize mean points values by team
df %>%
  group_by(team) %>%
  summarize(mean_pts = mean(points))

# A tibble: 3 x 2
  team mean_pts
      
1 to 7  
2 B 13.7
3 C 27

คอลัมน์ชื่อ Mean_pts จะแสดงคะแนนเฉลี่ยที่แต่ละทีมทำได้

จากผลลัพธ์เราจะเห็นได้ว่า:

  • คะแนนเฉลี่ยที่ผู้เล่นของทีม A ทำได้คือ 7
  • คะแนนเฉลี่ยที่ผู้เล่นของทีม B ทำได้คือ 13.7
  • คะแนนเฉลี่ยที่ผู้เล่นของทีม C ทำได้คือ 27

อย่างไรก็ตาม สมมติว่าเราต้องการเก็บคอลัมน์อื่นๆ ทั้งหมดจากกรอบข้อมูลดั้งเดิม

เราสามารถใช้ไวยากรณ์ต่อไปนี้ร่วมกับฟังก์ชัน mutate() เพื่อทำสิ่งนี้:

 library (dplyr)

#summarize mean points values by team and keep all columns
df %>%
  group_by(team) %>%
  mutate(mean_pts = mean(points)) %>%
  A group()

# A tibble: 9 x 4
  team points assists mean_pts
           
1 to 4 3 7  
2 to 9 3 7  
3 to 8 2 7  
4 B 12 5 13.7
5 B 15 8 13.7
6 B 14 10 13.7
7 C 29 4 27  
8 C 30 5 27  
9 C 22 12 27

เมื่อใช้ฟังก์ชัน mutate() เราสามารถสร้างคอลัมน์ใหม่ชื่อ Mean_pts ซึ่งจะสรุปคะแนนเฉลี่ยต่อทีมโดยยังคงรักษาคอลัมน์อื่นๆ ทั้งหมดจากกรอบข้อมูลเดิม

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

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

dplyr: วิธีกลายพันธุ์ตัวแปรหากคอลัมน์มีสตริง
dplyr: วิธีเปลี่ยนระดับแฟคเตอร์โดยใช้ mutate()
dplyr: วิธีเพิ่มหลายคอลัมน์

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

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