วิธีการเข้าร่วมภายในใน r (พร้อมตัวอย่าง)


มีสองวิธีทั่วไปในการดำเนินการรวมภายในใน R:

วิธีที่ 1: ใช้ Base R

 merge(df1, df2, by=' column_to_join_on ')

วิธีที่ 2: ใช้ dplyr

 library (dplyr)

inner_join(df1, df2, by=' column_to_join_on ')

ทั้งสองวิธีจะให้ผลลัพธ์เดียวกัน แต่วิธี dplyr มีแนวโน้มที่จะทำงานเร็วกว่าในชุดข้อมูลที่มีขนาดใหญ่มาก

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

 #define first data frame
df1 = data. frame (team=c('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'),
                 points=c(18, 22, 19, 14, 14, 11, 20, 28))

df1

  team points
1 to 18
2 B 22
3 C 19
4 D 14
5 E 14
6 F 11
7 G 20
8:28 a.m.

#define second data frame
df2 = data. frame (team=c('A', 'B', 'C', 'D', 'G', 'H'),
                 assists=c(4, 9, 14, 13, 10, 8))

df2

  team assists
1 to 4
2 B 9
3 C 14
4 D 13
5G 10
6:8 a.m.

ตัวอย่างที่ 1: การรวมภายในโดยใช้ Base R

เราสามารถใช้ฟังก์ชัน merge() ในฐาน R เพื่อดำเนินการรวมภายใน โดยใช้คอลัมน์ ‘ทีม’ เป็นคอลัมน์ที่จะรวม:

 #perform inner join using base R
df3 <- merge(df1, df2, by=' team ')

#view result
df3

  team points assists
1 to 18 4
2 B 22 9
3 C 19 14
4 D 14 13
5 G 20 10
6:28 a.m. 8

โปรดทราบว่ามีเพียงทีมที่ปรากฏในชุดข้อมูลทั้งสองเท่านั้นที่จะยังคงอยู่ในชุดข้อมูลสุดท้าย

ตัวอย่างที่ 2: การเข้าร่วมภายในโดยใช้ dplyr

เราสามารถใช้ฟังก์ชัน inner_join() จากแพ็คเกจ dplyr เพื่อดำเนินการรวมภายใน โดยใช้คอลัมน์ ‘ทีม’ เป็นคอลัมน์ที่จะเข้าร่วม:

 library (dplyr)

#perform inner join using dplyr 
df3 <- inner_join(df1, df2, by=' team ')

#view result
df3

  team points assists
1 to 18 4
2 B 22 9
3 C 19 14
4 D 14 13
5 G 20 10
6:28 a.m. 8

โปรดทราบว่าสิ่งนี้สอดคล้องกับผลลัพธ์ที่เราได้รับโดยใช้ฟังก์ชัน merge() ในฐาน R

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

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

วิธีเข้าร่วมซ้ายใน R
วิธีการเข้าร่วมที่ถูกต้องใน R
วิธีเพิ่มคอลัมน์ใน data frame ใน R
วิธีลบคอลัมน์ออกจาก data frame ใน R

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

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