ตอบ: วิธีผสานเฟรมข้อมูลตามหลายคอลัมน์


คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้เพื่อผสานสองเฟรมข้อมูลใน R โดยอิงจากหลายคอลัมน์:

 merge(df1, df2, by. x =c(' col1 ', ' col2 '), by. y =c(' col1 ', ' col2 '))

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

ตัวอย่าง: รวมบล็อกข้อมูลข้ามหลายคอลัมน์

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

 #define data frames
df1 = data. frame (playerID=c(1, 2, 3, 4, 5, 6),
                 team=c('A', 'B', 'B', 'B', 'C', 'C'),
                 dots=c(19, 22, 25, 29, 34, 39))

df2 = data. frame (playerID=c(1, 2, 3, 4),
                 tm=c('A', 'B', 'B', 'B'),
                 rebounds=c(7, 8, 8, 14))

#view first data frame
df1

  playerID team points
1 1 A 19
2 2 B 22
3 3 B 25
4 4 B 29
5 5 C 34
6 6 C 39

#view second data frame
df2 

  playerID tm rebounds
1 1 To 7
2 2 B 8
3 3 B 8
4 4 B 14

โปรดทราบว่าเฟรมข้อมูลทั้งสองแชร์คอลัมน์ playerID แต่คอลัมน์ทีมมีชื่อที่แตกต่างกันในแต่ละเฟรมข้อมูล:

  • กรอบข้อมูลแรกมีคอลัมน์ ” ทีม
  • กรอบข้อมูลที่สองมีคอลัมน์ ‘ tm

ในการผสานเฟรมข้อมูลเหล่านี้ตาม playerID และคอลัมน์ทีม เราจำเป็นต้องใช้อาร์กิวเมนต์ by.x และ by.y

เราสามารถใช้รหัสต่อไปนี้เพื่อทำการผสานนี้:

 #merge two data frames
merged = merge(df1, df2, by. x =c(' playerID ', ' team '), by. y =c(' playerID ', ' tm '))

#view merged data frame
merged

  playerID team points rebounds
1 1 A 19 7
2 2 B 22 8
3 3 B 25 8
4 4 B 29 14

กรอบข้อมูลที่รวมเข้าด้วยกันขั้นสุดท้ายจะมีข้อมูลสำหรับผู้เล่นทั้งสี่คนที่อยู่ในกรอบข้อมูลดั้งเดิมทั้งสอง

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

บทช่วยสอนต่อไปนี้จะอธิบายวิธีการใช้งานฟังก์ชันเฟรมข้อมูลทั่วไปอื่นๆ ใน R:

วิธีเข้าร่วมซ้ายใน R
วิธีทำ VLOOKUP ใน R
วิธีเพิ่มแถวใน data frame ใน R

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

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