R 中的 rbind() 函數 – 輕鬆綁定行

在 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