วิธีรวมหลายคอลัมน์โดยใช้ dplyr
คุณสามารถใช้วิธีการต่อไปนี้เพื่อรวมค่าของหลายคอลัมน์ใน data frame โดยใช้ dplyr:
วิธีที่ 1: รวมคอลัมน์ทั้งหมด
df %>% mutate(sum = rowSums(., na. rm = TRUE ))
วิธีที่ 2: รวมคอลัมน์ตัวเลขทั้งหมด
df %>% mutate(sum = rowSums(across(where(is. numeric )), na. rm = TRUE ))
วิธีที่ 3: รวมคอลัมน์ที่ระบุ
df %>% mutate(sum = rowSums(across(c(col1, col2))))
ตัวอย่างต่อไปนี้แสดงวิธีใช้แต่ละวิธีกับกรอบข้อมูลต่อไปนี้ซึ่งมีข้อมูลเกี่ยวกับคะแนนที่ผู้เล่นบาสเกตบอลแต่ละคนทำได้ในเกมต่างๆ:
#create data frame df <- data. frame (game1=c(22, 25, 29, 13, 22, 30), game2=c(12, 10, 6, 6, 8, 11), game3=c(NA, 15, 15, 18, 22, 13)) #view data frame df game1 game2 game3 1 22 12 NA 2 25 10 15 3 29 6 15 4 13 6 18 5 22 8 22 6 30 11 13
ตัวอย่างที่ 1: ผลรวมของคอลัมน์ทั้งหมด
รหัสต่อไปนี้แสดงวิธีคำนวณผลรวมของค่าของคอลัมน์ทั้งหมดในกรอบข้อมูล:
library (dplyr)
#sum values across all columns
df %>%
mutate(total_points = rowSums(., na. rm = TRUE ))
game1 game2 game3 total_points
1 22 12 NA 34
2 25 10 15 50
3 29 6 15 50
4 13 6 18 37
5 22 8 22 52
6 30 11 13 54
ตัวอย่างที่ 2: ผลรวมของคอลัมน์ตัวเลขทั้งหมด
รหัสต่อไปนี้แสดงวิธีคำนวณผลรวมของค่าของคอลัมน์ตัวเลขทั้งหมดในกรอบข้อมูล:
library (dplyr)
#sum values across all numeric columns
df %>%
mutate(total_points = rowSums(across(where(is. numeric )), na. rm = TRUE ))
game1 game2 game3 total_points
1 22 12 NA 34
2 25 10 15 50
3 29 6 15 50
4 13 6 18 37
5 22 8 22 52
6 30 11 13 54
ตัวอย่างที่ 3: ผลรวมของคอลัมน์ที่ระบุ
รหัสต่อไปนี้แสดงวิธีคำนวณผลรวมของค่าในคอลัมน์ game1 และ game2 เท่านั้น:
library (dplyr)
#sum values across game1 and game2 only
df %>%
mutate(first2_sum = rowSums(across(c(game1, game2))))
game1 game2 game3 first2_sum
1 22 12 NA 34
2 25 10 15 35
3 29 6 15 35
4 13 6 18 19
5 22 8 22 30
6 30 11 13 41
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้อธิบายวิธีดำเนินการงานทั่วไปอื่น ๆ โดยใช้ dplyr:
วิธีลบแถวโดยใช้ dplyr
วิธีจัดเรียงแถวโดยใช้ dplyr
วิธีกรองตามเงื่อนไขต่างๆ โดยใช้ dplyr