วิธีการเข้าร่วมซ้ายใน r (พร้อมตัวอย่าง)
คุณสามารถใช้ฟังก์ชัน ผสาน () เพื่อดำเนินการรวมด้านซ้ายในฐาน R:
#left join using base R merge(df1,df2, all. x = TRUE )
คุณยังสามารถใช้ฟังก์ชัน left_join() จากแพ็คเกจ dplyr เพื่อดำเนินการรวมด้านซ้าย:
#left join using dplyr
dplyr::left_join(df2, df1)
หมายเหตุ: หากคุณกำลังทำงานกับชุดข้อมูลที่มีขนาดใหญ่มาก ฟังก์ชัน left_join() จะมีแนวโน้มที่จะเร็วกว่าฟังก์ชัน merge()
ตัวอย่างต่อไปนี้แสดงวิธีใช้แต่ละฟังก์ชันเหล่านี้ในทางปฏิบัติกับกรอบข้อมูลต่อไปนี้:
#define first data frame df1 <- data. frame (team=c(' Mavs ', ' Hawks ', ' Spurs ', ' Nets '), dots=c(99, 93, 96, 104)) df1 team points 1 Mavs 99 2 Hawks 93 3 Spurs 96 4 Nets 104 #define second data frame df2 <- data. frame (team=c(' Mavs ', ' Hawks ', ' Spurs ', ' Nets '), rebounds=c(25, 32, 38, 30), assists=c(19, 18, 22, 25)) df2 team rebound assists 1 Mavs 25 19 2 Hawks 32 18 3 Spurs 38 22 4 Nets 30 25
ตัวอย่างที่ 1: ออกจากการรวมโดยใช้ Base R
เราสามารถใช้ฟังก์ชัน merge() ในฐาน R เพื่อดำเนินการรวมด้านซ้าย โดยใช้คอลัมน์ ‘ทีม’ เป็นคอลัมน์ที่จะรวม:
#perform left join using base R merge(df1, df2, by=' team ', all. x = TRUE ) team points rebound assists 1 Hawks 93 32 18 2 Mavs 99 25 19 3 Nets 104 30 25 4 Spurs 96 38 22
ตัวอย่างที่ 2: ปล่อยให้เข้าร่วมโดยใช้ dplyr
เราสามารถใช้ฟังก์ชัน left_join() จากแพ็คเกจ dplyr เพื่อดำเนินการรวมด้านซ้าย โดยใช้คอลัมน์ ‘ทีม’ เป็นคอลัมน์ที่จะเข้าร่วม:
library (dplyr) #perform left join using dplyr left_join(df1, df2, by=' team ') team points rebound assists 1 Mavs 99 25 19 2 Hawks 93 32 18 3 Spurs 96 38 22 4 Nets 104 30 25
ข้อแตกต่างประการหนึ่งที่คุณจะสังเกตเห็นระหว่างสองฟังก์ชันนี้คือฟังก์ชัน Merge() จะเรียงลำดับแถวตามตัวอักษรโดยอัตโนมัติตามคอลัมน์ที่คุณใช้ในการรวม
ในทางกลับกัน ฟังก์ชัน left_join() จะรักษาลำดับเดิมของแถวในกรอบข้อมูลแรก
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการทั่วไปอื่นๆ ใน R:
วิธีการเข้าร่วมภายในใน R
วิธีดำเนินการจับคู่แบบคลุมเครือใน R
วิธีเพิ่มคอลัมน์ใน data frame ใน R
วิธีลบคอลัมน์ออกจาก data frame ใน R