วิธีผสานเฟรมข้อมูลตามชื่อแถวใน r


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

 #inner join
merge(df1, df2, by= 0 )

#left join
merge(df1, df2, by= 0 , all. x = TRUE )

#outerjoin
merge(df1, df2, by= 0 , all= TRUE )

การใช้อาร์กิวเมนต์ by=0 เราสามารถบอก R ว่าเราต้องการผสานโดยใช้ชื่อแถวของบล็อกข้อมูล

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

 #create first data frame
df1 <- data. frame (points=c(99, 90, 86, 88, 95),
                  assists=c(33, 28, 31, 39, 34))

rownames(df1) <- c(1, 2, 3, 4, 5)

df1

  assist points
1 99 33
2 90 28
3 86 31
4 88 39
5 95 34

#create second data frame
df2 <- data. frame (rebounds=c(17, 15, 22, 26, 25),
                  blocks=c(7, 7, 15, 12, 14))

rownames(df2) <- c(3, 4, 5, 6, 7)

df2

  rebound blocks
3 17 7
4 15 7
5 22 15
6 26 12
7 25 14

ตัวอย่างที่ 1: ดำเนินการรวมภายในโดยใช้ชื่อแถว

รหัสต่อไปนี้แสดงวิธีการดำเนินการรวมภายในบนสองเฟรมข้อมูลโดยใช้ชื่อแถว:

 #perform inner join using row names
merge(df1, df2, by= 0 )

  Row.names points assists rebounds blocks
1 3 86 31 17 7
2 4 88 39 15 7
3 5 95 34 22 15

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

ตัวอย่างที่ 2: ดำเนินการรวมด้านซ้ายโดยใช้ชื่อแถว

รหัสต่อไปนี้แสดงวิธีการรวมด้านซ้ายในสองเฟรมข้อมูลโดยใช้ชื่อแถว:

 #perform left join using row names
merge(df1, df2, by= 0 , all. x = TRUE )

  Row.names points assists rebounds blocks
1 1 99 33 NA NA
2 2 90 28 NA NA
3 3 86 31 17 7
4 4 88 39 15 7
5 5 95 34 22 15

โปรดทราบว่าแถวทั้งหมดจากกรอบข้อมูลแรกจะยังคงอยู่ในกรอบข้อมูลที่ผสานขั้นสุดท้าย

ตัวอย่างที่ 3: ดำเนินการรวมภายนอกโดยใช้ชื่อแถว

รหัสต่อไปนี้แสดงวิธีการรวมภายนอกบนสองเฟรมข้อมูลโดยใช้ชื่อแถว:

 #perform outer join using row names
merge(df1, df2, by= 0 , all= TRUE )

  Row.names points assists rebounds blocks
1 1 99 33 NA NA
2 2 90 28 NA NA
3 3 86 31 17 7
4 4 88 39 15 7
5 5 95 34 22 15
6 6 NA NA 26 12
7 7 NA NA 25 14

โปรดทราบว่าแถวทั้งหมดจากกรอบข้อมูลทั้งสองจะยังคงอยู่ในกรอบข้อมูลที่ผสานขั้นสุดท้าย

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

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

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

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

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