วิธีรวมแถวที่มีค่าคอลัมน์เดียวกันใน r


คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้เพื่อรวมแถวที่มีค่าคอลัมน์เดียวกันในกรอบข้อมูลใน R:

 library (dplyr)

df %>%
  group_by(group_var1, group_var2) %>%
  summarise(across(c(values_var1, values_var2), sum))

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

ตัวอย่าง: รวมแถวที่มีค่าคอลัมน์เดียวกันใน R

สมมติว่าเรามีกรอบข้อมูลต่อไปนี้ซึ่งมีข้อมูลเกี่ยวกับการขายและการคืนสินค้าที่ทำโดยพนักงานหลายคนของบริษัท:

 #create data frame
df <- data. frame (id=c(101, 101, 102, 103, 103, 103),
                 employee=c('Dan', 'Dan', 'Rick', 'Ken', 'Ken', 'Ken'),
                 sales=c(4, 1, 3, 2, 5, 3),
                 returns=c(1, 2, 2, 1, 3, 2))

#view data frame
df

   id employee sales returns
1 101 Dan 4 1
2 101 Dan 1 2
3 102 Rick 3 2
4 103 Ken 2 1
5 103 Ken 5 3
6 103 Ken 3 2

เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อรวมแถวที่มีค่าเดียวกันในคอลัมน์ id และ Employee จากนั้นจึงรวมคอลัมน์ที่เหลือ:

 library (dplyr)

#combine rows with same value for id and employee and aggregate remaining columns
df %>%
  group_by(id, employee) %>%
  summarise(across(c(sales, returns), sum))

# A tibble: 3 x 4
#Groups: id[3]
     id employee sales returns
          
1 101 Dan 5 3
2 102 Rick 3 2
3 103 Ken 10 6

ผลลัพธ์คือกรอบข้อมูลที่รวมแถวทั้งหมดในกรอบข้อมูลเดิมที่มีค่าเดียวกันในคอลัมน์ ID และ Employee จากนั้นคำนวณผลรวมของค่าในคอลัมน์ Sales และ Returns

หมายเหตุ : เราเลือกที่จะรวมคอลัมน์ยอดขายและการคืนสินค้าโดยใช้ฟังก์ชัน ผลรวม แต่คุณสามารถรวมด้วยหน่วยวัดอื่น เช่น ค่าเฉลี่ย ได้ หากคุณต้องการ

ที่เกี่ยวข้อง: วิธีใช้ฟังก์ชัน cross() ใน dplyr

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

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

วิธีรวมรายการใน R
วิธีรวมเวกเตอร์สองตัวเข้าด้วยกันใน R
วิธีรวมเฟรมข้อมูลสองเฟรมใน R กับคอลัมน์ที่ต่างกัน

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

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