วิธีรวมเฟรมข้อมูลในหลายคอลัมน์โดยใช้ dplyr
คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้เพื่อรวมเฟรมข้อมูลใน R โดยอิงจากหลายคอลัมน์โดยใช้ dplyr:
library (dplyr) left_join(df1, df2, by=c(' x1 '=' x2 ', ' y1 '=' y2 '))
ไวยากรณ์เฉพาะนี้จะดำเนินการรวมด้านซ้ายโดยมีเงื่อนไขต่อไปนี้เป็นจริง:
- ค่าในคอลัมน์ x1 ของ df1 ตรงกับค่าในคอลัมน์ x2 ของ df2
- ค่าของคอลัมน์ y1 ของ df1 สอดคล้องกับค่าของคอลัมน์ y2 ของ df2
ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ
ตัวอย่าง: รวมหลายคอลัมน์โดยใช้ dplyr
สมมติว่าเรามีเฟรมข้อมูลสองเฟรมต่อไปนี้ใน R:
#define first data frame df1 = data. frame (team=c('A', 'A', 'B', 'B'), pos=c('G', 'F', 'F', 'G'), dots=c(18, 22, 19, 14)) df1 team pos points 1 AG 18 2 AF 22 3 BF 19 4 BG 14 #define second data frame df2 = data. frame (team_name=c('A', 'A', 'B', 'C', 'C'), position=c('G', 'F', 'F', 'G', 'F'), assists=c(4, 9, 8, 6, 5)) df2 team_name position assists 1 GA 4 2 AF 9 3 BF 8 4 CG 6 5 CF 5
เราสามารถใช้ไวยากรณ์ต่อไปนี้ใน dplyr เพื่อดำเนินการรวมด้านซ้ายโดยยึดตามสองคอลัมน์:
library (dplyr) #perform left join based on multiple columns df3 <- left_join(df1, df2, by=c(' team '=' team_name ', ' pos '=' position ')) #view result df3 team pos points assists 1 AG 18 4 2 AF 22 9 3 BF 19 8 4 BG 14 NA
กรอบข้อมูลผลลัพธ์ประกอบด้วยแถวทั้งหมดจาก df1 และเฉพาะแถวจาก df2 ซึ่งค่าทีมและตำแหน่งตรงกัน
โปรดทราบว่าหากเฟรมข้อมูลทั้งสองใช้ชื่อคอลัมน์เดียวกัน คุณสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อรวมหลายคอลัมน์:
library (dplyr) #perform left join based on multiple columns df3 <- left_join(df1, df2, by=c(' team ', ' position '))
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการทั่วไปอื่นๆ ใน R:
วิธีเข้าร่วมซ้ายใน R
วิธีการเข้าร่วมที่ถูกต้องใน R
วิธีการเข้าร่วมภายในใน R
วิธีการรวมภายนอกใน R