วิธีใช้bind_rowsและbind_colsใน dplyr (พร้อมตัวอย่าง)


คุณสามารถใช้ฟังก์ชัน bind_rows() จากแพ็คเกจ dplyr ใน R เพื่อผูกเฟรมข้อมูลสองเฟรมตามแถว:

 bind_rows(df1, df2, df3, ...)

ในทำนองเดียวกัน คุณสามารถใช้ฟังก์ชัน bind_cols() ของ dplyr เพื่อผูกเฟรมข้อมูลสองเฟรมด้วยคอลัมน์:

 bind_cols(df1, df2, df3, ...)

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

ตัวอย่างที่ 1: ใช้ bind_rows()

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

 library (dplyr)

#create data frames
df1 <- data. frame (team=c('A', 'A', 'B', 'B'),
                  dots=c(12, 14, 19, 24))


df2 <- data. frame (team=c('A', 'B', 'C', 'C'),
                  dots=c(8, 17, 22, 25))

df3 <- data. frame (team=c('A', 'B', 'C', 'C'),
                  assists=c(4, 9, 12, 6))

#row bind together data frames
bind_rows(df1, df2, df3)

   team points assists
1 to 12 NA
2 A 14 NA
3 B 19 NA
4 B 24 NA
5 to 8 NA
6 B 17 NA
7 C 22 NA
8 C 25 NA
9 A NA 4
10 B NA 9
11 C NA 12
12 C NA 6

โปรดทราบว่าฟังก์ชันนี้จะเติมค่าที่หายไปด้วย NA โดยอัตโนมัติหากเฟรมข้อมูลไม่มีชื่อคอลัมน์เหมือนกันทั้งหมด

ตัวอย่างที่ 2: ใช้ bind_cols()

รหัสต่อไปนี้แสดงวิธีการใช้ฟังก์ชัน bind_cols() เพื่อผูกเฟรมข้อมูลสามเฟรมเข้าด้วยกันตามคอลัมน์:

 library (dplyr)

#create data frames
df1 <- data. frame (team=c('A', 'A', 'B', 'B'),
                  dots=c(12, 14, 19, 24))


df2 <- data. frame (team=c('A', 'B', 'C', 'C'),
                  dots=c(8, 17, 22, 25))

df3 <- data. frame (team=c('A', 'B', 'C', 'C'),
                  assists=c(4, 9, 12, 6))

#column bind together data frames
bind_cols(df1, df2, df3)

  team points assists steals blocks rebounds
1 A 12 A 8 A 4
2 A 14 B 17 B 9
3 B 19 C 22 C 12
4 B 24 C 25 C 6

โปรดทราบว่าคอลัมน์ดั้งเดิมของแต่ละเฟรมข้อมูลจะปรากฏในเฟรมข้อมูลสุดท้ายตามลำดับที่เราระบุไว้ในฟังก์ชัน bind_cols()

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

บทช่วยสอนต่อไปนี้สาธิตวิธีการผูกเฟรมข้อมูลโดยใช้ฟังก์ชัน rbind() และ cbind() ใน R:

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

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

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