ปล่อยให้เข้าร่วมใน dplyr ด้วยชื่อคอลัมน์ที่แตกต่างกัน


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

 library (dplyr)

final_df <- left_join(df_A, df_B, by = c(' team ' = ' team_name '))

ตัวอย่างเฉพาะนี้จะทำการรวมด้านซ้ายบนเฟรมข้อมูลที่เรียกว่า df_A และ df_B โดยเข้าร่วมคอลัมน์จาก df_A ที่เรียกว่า team และคอลัมน์จาก df_B เรียกว่า team_name

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

ตัวอย่าง: ดำเนินการรวมด้านซ้ายด้วยชื่อคอลัมน์ที่แตกต่างกันใน dplyr

สมมติว่าเรามีเฟรมข้อมูลสองเฟรมต่อไปนี้ใน R:

 #create first data frame
df_A <- data. frame (team=c('A', 'B', 'C', 'D', 'E'),
                   dots=c(22, 25, 19, 14, 38))

df_A

  team points
1 to 22
2 B 25
3 C 19
4 D 14
5 E 38

#create second data frame
df_B <- data. frame (team=c('A', 'C', 'D', 'F', 'G'),
                   rebounds=c(14, 8, 8, 6, 9))

df_B

  team_name rebounds
1 to 14
2 C 8
3 D 8
4 F 6
5 G 9

เราสามารถใช้ไวยากรณ์ต่อไปนี้ใน dplyr เพื่อดำเนินการรวมด้านซ้ายตามค่าที่ตรงกันในคอลัมน์ ทีม ของ df_A และคอลัมน์ team_name ของ df_B :

 library (dplyr)

#perform left join based on different column names in df_A and df_B
final_df <- left_join(df_A, df_B, by = c(' team ' = ' team_name '))

#view final data frame
final_df

  team points rebounds
1 to 22 14
2 B 25 NA
3 C 19 8
4 D 14 8
5 E 38 NA

กรอบข้อมูลผลลัพธ์ประกอบด้วยแถวทั้งหมดจาก df_A และเฉพาะแถวจาก df_B โดยที่ค่า ทีม ตรงกับค่า team_name

โปรดทราบว่าคุณยังสามารถค้นหาในหลายคอลัมน์ที่มีชื่อต่างกันได้โดยใช้ไวยากรณ์พื้นฐานต่อไปนี้:

 library (dplyr)

#perform left join based on multiple different column names
final_df <- left_join(df_A, df_B, by = c(' A1 ' = ' B1 ', ' A2 ' = ' B2 ', ' A3 ' = ' B3 '))

หมายเหตุ : คุณสามารถค้นหาเอกสารฉบับเต็มของฟังก์ชัน left_join() ได้ใน dplyr ที่นี่

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

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

วิธีเข้าร่วมซ้ายใน R
วิธีการเข้าร่วมที่ถูกต้องใน R
วิธีการเข้าร่วมภายในใน R
วิธีการรวมภายนอกใน R

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

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