在 R 中,使用 `rbind()` 函数結合或合併行非常容易。
`rbind()` 代表行綁定。簡單來說,它是將多行合併成單一批次。這可能包括合併兩個數據框、向量等。
本文將介紹 R 編程中 `rbind()` 函數的用途和應用。
不浪費時間,讓我們開始吧!
`rbind()` 函數的語法
rbind(): rbind 或行綁定函數用於將多個行組合或綁定在一起。
rbind(x,x1)
其中:
- X = the input data.
- X1 = 需要綁定的數據。
使用 `rbind()` 綁定行的概念
使用 `rbind()` 函數結合或合併多個數據框的行在數據操作中非常有益。
下面的圖表將幫助您理解 `rbind()` 函數的工作原理。
您可以看到不同數據框的行如何被 `rbind()` 函數綁定/組合。
在R中實現rbind()函數
如你所知,R中的rbind()函數用於綁定不同數據組的行。
在本節中,讓我們嘗試構造一個簡單的數據框架,並使用rbind()函數綁定它們。
#創建一個數據框架
Student_details<-c("Mark","John","Fredrick","Floyd","George")
Student_class<-c("High school","College","High school","High school","College")
df1<-data.frame(Student_class,Student_details)
df1
上述代碼將構造一個簡單的數據框架,展示學生詳情和名字。
Student_class Student_details
1 High school Mark
2 College John
3 High school Fredrick
4 High school Floyd
5 College George
好了,現在我們有了一個5行的數據框架。讓我們創建另一個數據框架。
#創建一個數據框架
Student_details<-c("Bracy","Evin")
Student_class<-c("High school","College")
Student_rank<-c("A","A+")
df2<-data.frame(Student_class,Student_details,Student_rank)
df2
Student_class Student_details
1 High school Bracy
2 College Evin
好了,現在我們有了2個不同行數的數據框架(df1和df2)。讓我們使用rbind()函數將上述2個數據框架綁定成一個單一的數據框架。
讓我們看看它是如何工作的。
你不會相信,整個綁定過程只需一行代碼。
#綁定2個輸入數據框架的行
rbind(df1,df2)
Student_class Student_details
1 High school Mark
2 College John
3 High school Fredrick
4 High school Floyd
5 College George
6 High school Bracy
7 College Evin
結果的數據框架將是兩個數據框架的綁定版本,如上述輸出所示。
使用bind()函數綁定兩個不等長的資料框
在前一節中,我們將兩個列組合在一起。
在本節中,我們將使用R中的rbind函數將兩個資料集合併在一起。
# 創建資料框
Student_details<-c("Mark","John","Fredrick","Floyd","George")
Student_class<-c("High school","College","High school","High school","College")
df1<-data.frame(Student_class,Student_details)
df1
Student_class Student_details
1 High school Mark
2 College John
3 High school Fredrick
4 High school Floyd
5 College George
# 創建資料框
Student_details<-c("Bracy","Evin")
Student_class<-c("High school","College")
Student_rank<-c("A","A+")
df2<-data.frame(Student_class,Student_details,Student_rank)
df2
Student_class Student_details Student_rank
1 High school Bracy A
2 College Evin A+
rbind(df1,df2)
Error in rbind(deparse.level, ...) :
numbers of columns of arguments do not match
哦,等等,發生了什麼事?為什麼函數報錯了?
如果您讀取錯誤中的行,它說明列數不匹配。
我們在 ‘df1’ 中有 2 列,而在 ‘df2’ 中有 3 列。
不用擔心!我們有bind_rows()函數,它將幫助我們應對這些情況。
使用bind_rows()函數綁定不均勻的資料集
bind_rows()是dplyr套件中的一部分。我們需要先導入dplyr套件才能執行此函數。
我們正在使用上一節中提到的相同數據框,即df1和df2。讓我們看看它是如何工作的。
#安裝所需的套件
install.packages('dplyr')
#導入庫
library(dplyr)
#綁定行
bind_rows(df1,df2)
Student_class Student_details Student_rank
1 High school Mark <NA>
2 College John <NA>
3 High school Fredrick <NA>
4 High school Floyd <NA>
5 College George <NA>
6 High school Bracy A
7 College Evin A+
現在你可以看到,bind_rows函數已經將這兩個不同列的數據集合併在一起。空白處將被標記為<NA>。
使用rbind()函數綁定兩個數據集
在這一部分中,我們將探討在R中綁定兩個整個數據集的方法。
讓我們看看它是如何工作的。
我們將使用BOD數據集,因為它只有6行,而且您可以輕鬆觀察到綁定的行。
#綁定兩個數據集
rbind(BOD,BOD)
Time demand
1 1 8.3
2 2 10.3
3 3 19.0
4 4 16.0
5 5 15.6
6 7 19.8
---------------
7 1 8.3
8 2 10.3
9 3 19.0
10 4 16.0
11 5 15.6
12 7 19.8
BOD數據集有6行。由於我們將數據傳遞兩次,rbind()函數將綁定相同的行,如上所示。
還要記住,你還有bind_rows()函數。
#綁定兩個不同的數據集
bind_rows(BOD,women)
Time demand height weight
1 1 8.3 NA NA
2 2 10.3 NA NA
3 3 19.0 NA NA
4 4 16.0 NA NA
5 5 15.6 NA NA
6 7 19.8 NA NA
7 NA NA 58 115
8 NA NA 59 117
9 NA NA 60 120
10 NA NA 61 123
11 NA NA 62 126
12 NA NA 63 129
13 NA NA 64 132
14 NA NA 65 135
15 NA NA 66 139
16 NA NA 67 142
17 NA NA 68 146
18 NA NA 69 150
19 NA NA 70 154
20 NA NA 71 159
21 NA NA 72 164
這些例子清楚地展示了bind()和bind_rows()函數的工作原理和應用。
I hope these illustrations helped you in understanding these functions.
在R中綁定多個行組
在這一節中,我們將專注於使用函數rbind()來綁定多個(超過2個)行組。讓我們看看它是如何工作的。
#綁定3個數據集的行
bind_rows(BOD,women,ToothGrowth)
Time demand height weight len supp dose
1 1 8.3 NA NA NA <NA> NA
2 2 10.3 NA NA NA <NA> NA
3 3 19.0 NA NA NA <NA> NA
4 4 16.0 NA NA NA <NA> NA
5 5 15.6 NA NA NA <NA> NA
6 7 19.8 NA NA NA <NA> NA
7 NA NA 58 115 NA <NA> NA
8 NA NA 59 117 NA <NA> NA
9 NA NA 60 120 NA <NA> NA
10 NA NA 61 123 NA <NA> NA
11 NA NA 62 126 NA <NA> NA
12 NA NA 63 129 NA <NA> NA
13 NA NA 64 132 NA <NA> NA
14 NA NA 65 135 NA <NA> NA
15 NA NA 66 139 NA <NA> NA
16 NA NA 67 142 NA <NA> NA
17 NA NA 68 146 NA <NA> NA
18 NA NA 69 150 NA <NA> NA
19 NA NA 70 154 NA <NA> NA
20 NA NA 71 159 NA <NA> NA
觀察一下,如何通過R中的bind_rows()函數將三個數據集結合在一起。這就是bind_rows()函數的美妙之處。
這兩個函數在R編程中的數據操作中有著無窮的應用。
總結
R中的rbind()函數和bind_rows()函數是在數據操作時最有用的函數。
您可以輕鬆地使用rbind()函數綁定具有相同列數的兩個數據框。
同樣,如果數據框的列數不相等,則可以使用bind_rows()函數以及dplyr包。
好了,暫時就這些,祝您綁定愉快!!!
更多閱讀: R文檔
Source:
https://www.digitalocean.com/community/tutorials/rbind-function-r