วิธีสรุปหลายคอลัมน์โดยใช้ dplyr


คุณสามารถใช้วิธีการต่อไปนี้เพื่อสรุปหลายคอลัมน์ในกรอบข้อมูลโดยใช้ dplyr:

วิธีที่ 1: สรุปคอลัมน์ทั้งหมด

 #summarize mean of all columns
df %>%
  group_by(group_var) %>%
  summarise(across(everything(), mean, na. rm = TRUE ))

วิธีที่ 2: สรุปคอลัมน์เฉพาะ

 #summarize mean of col1 and col2 only
df %>%
  group_by(group_var) %>%
  summarise(across(c(col1, col2), mean, na. rm = TRUE ))

วิธีที่ 3: สรุปคอลัมน์ตัวเลขทั้งหมด

 #summarize mean and standard deviation of all numeric columns
df %>%
  group_by(group_var) %>%
  summarise(across(where(is. numeric ), list(mean=mean, sd=sd), na. rm = TRUE ))

ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีกับกรอบข้อมูลต่อไปนี้:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B'),
                 points=c(99, 90, 86, 88, 95, 90),
                 assists=c(33, 28, 31, 39, 34, 25),
                 rebounds=c(NA, 28, 24, 24, 28, 19))

#view data frame
df

  team points assists rebounds
1 A 99 33 NA
2 A 90 28 28
3 A 86 31 24
4 B 88 39 24
5 B 95 34 28
6 B 90 25 19

ตัวอย่างที่ 1: สรุปคอลัมน์ทั้งหมด

รหัสต่อไปนี้แสดงวิธีการสรุปค่าเฉลี่ยของคอลัมน์ทั้งหมด:

 library (dplyr)

#summarize mean of all columns, grouped by team
df %>%
  group_by(team) %>%
  summarise(across(everything(), mean, na. rm = TRUE ))

# A tibble: 2 x 4
  team points assists rebounds
           
1 A 91.7 30.7 26  
2 B 91 32.7 23.7

ตัวอย่างที่ 2: สรุปคอลัมน์เฉพาะ

รหัสต่อไปนี้แสดงวิธีการสรุปค่าเฉลี่ยของคอลัมน์ จุด และ รีบาวด์ :

 library (dplyr)

#summarize mean of points and rebounds, grouped by team
df %>%
  group_by(team) %>%
  summarise(across(c(points, rebounds), mean, na. rm = TRUE ))

# A tibble: 2 x 3
  team points rebounds
        
1 A 91.7 26  
2 B 91 23.7

ตัวอย่างที่ 3: สรุปคอลัมน์ตัวเลขทั้งหมด

รหัสต่อไปนี้แสดงวิธีการสรุปค่าเฉลี่ยและส่วนเบี่ยงเบนมาตรฐานของคอลัมน์ตัวเลขทั้งหมดในกรอบข้อมูล:

 library (dplyr)

#summarize mean and standard deviation of all numeric columns
df %>%
  group_by(team) %>%
  summarise(across(where(is. numeric ), list(mean=mean, sd=sd), na. rm = TRUE ))

# A tibble: 2 x 7
  team points_mean points_sd assists_mean assists_sd rebounds_mean rebounds_sd
                                            
1 A 91.7 6.66 30.7 2.52 26 2.83
2 B 91 3.61 32.7 7.09 23.7 4.51

ผลลัพธ์จะแสดงค่าเฉลี่ยและส่วนเบี่ยงเบนมาตรฐานของตัวแปรตัวเลขทั้งหมดในกรอบข้อมูล

โปรดทราบว่าในตัวอย่างนี้ เราใช้ฟังก์ชัน list() เพื่อแสดงรายการสถิติสรุปต่างๆ ที่เราต้องการคำนวณ

หมายเหตุ : ในแต่ละตัวอย่าง เราใช้ฟังก์ชัน dplyr across() คุณสามารถค้นหาเอกสารฉบับเต็มสำหรับฟังก์ชันนี้ ได้ที่นี่

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

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

วิธีลบแถวโดยใช้ dplyr
วิธีจัดเรียงแถวโดยใช้ dplyr
วิธีกรองตามเงื่อนไขต่างๆ โดยใช้ dplyr

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

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