วิธีรวมเฟรมข้อมูลสองเฟรมใน r กับคอลัมน์ที่ต่างกัน
คุณสามารถใช้ฟังก์ชัน bind_rows() จากแพ็คเกจ dplyr ใน R เพื่อรวมเฟรมข้อมูลสองเฟรมเข้ากับคอลัมน์ที่แตกต่างกันอย่างรวดเร็ว:
library (dplyr)
bind_rows(df1, df2)
ตัวอย่างต่อไปนี้แสดงวิธีใช้ฟังก์ชันนี้ในทางปฏิบัติ
ตัวอย่าง: รวมสองเฟรมข้อมูลเข้ากับคอลัมน์ที่แตกต่างกัน
สมมติว่าเรามีเฟรมข้อมูลสองเฟรมต่อไปนี้ใน R:
#define first data frame
df1 <- data. frame (A=c(1, 6, 3, 7, 5),
B=c(7, 9, 8, 3, 2),
C=c(3, 5, 2, 9, 9))
df1
ABC
1 1 7 3
2 6 9 5
3 3 8 2
4 7 3 9
5 5 2 9
#define second data frame
df2 <- data. frame (B=c(1, 3, 3, 4, 5),
C=c(7, 7, 8, 3, 2),
D=c(3, 3, 6, 6, 8))
df2
BCD
1 1 7 3
2 3 7 3
3 3 8 6
4 4 3 6
5 5 2 8
โปรดทราบว่า df1 มีชื่อคอลัมน์ต่อไปนี้:
- มี
- บี
- VS
และโปรดทราบว่า df2 มีชื่อคอลัมน์ดังต่อไปนี้:
- บี
- VS
- ดี
ชื่อคอลัมน์ไม่ตรงกัน ดังนั้นฟังก์ชัน rbind() ใน R จะส่งข้อผิดพลาดหากเราพยายามใช้
#attempt to use rbind to row bind data frames
rbind(df1, df2)
Error in match.names(clabs, names(xi)):
names do not match previous names
แต่เราสามารถใช้ฟังก์ชัน bind_rows() จากแพ็คเกจ dplyr เพื่อรวมเฟรมข้อมูลทั้งสองนี้เข้าด้วยกัน และเพียงกรอกค่าที่ขาดหายไปในเฟรมข้อมูลที่ได้ผลลัพธ์ด้วยค่า NA:
library (dplyr)
#combine df1 and df2
bind_rows(df1, df2)
ABCD
1 1 7 3 NA
2 6 9 5 NA
3 3 8 2 NA
4 7 3 9 NA
5 5 2 9 NA
6 NA 1 7 3
7 NA 3 7 3
8 NA 3 8 6
9 NA 4 3 6
10 NA 5 2 8
แหล่งข้อมูลเพิ่มเติม
วิธีรวมสองคอลัมน์เป็นคอลัมน์เดียวใน R
วิธีซ้อนคอลัมน์ data frame ใน R