R中的rbind()函数–绑定行

时间:2020-02-23 14:43:53  来源:igfitidea点击:

使用R中的rbind()函数非常容易地进行行的绑定或者合并。

rbind()代表行绑定。
用更简单的术语来说,将多行连接起来以形成一个批处理。
它可能包括连接两个数据帧,向量等。

本文将讨论rbind()函数在R编程中的用途和应用。

rbind()函数的语法

rbind():rbind或者行绑定函数用于将多组行绑定或者组合在一起。

rbind(x,x1)

其中:

  • X =输入数据。

  • X1 =数据需要绑定。

使用rbind()绑定行的想法

绑定或者组合多个数据帧的行的想法在数据操作中非常有益。

下图肯定会让您了解使用rbind()函数的想法。

您可以看到rbind()函数如何绑定/组合不同数据帧的行。

在R中实现rbind()函数

如您所知,R中的rbind()函数用于绑定不同数据组的行。

在本节中,我们尝试构造一个简单的数据框并使用rbind()函数将其绑定。

#creating a data frame 

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行的数据框。
让我们创建另一个数据框。

#creating a dataframe

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个数据帧绑定到一个数据帧中。

让我们看看它是如何工作的。

您不会相信整个绑定过程只需要一行代码。

#binds rows of 2 input data frames

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函数将两个数据集组合在一起。

#creates the data frame

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

#creats the data frame

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 required packages
install.packages('dplyr')
#import libraries
library(dplyr)
#bind the rows
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行,并且您可以轻松观察绑定的行。

#binds two data sets
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()函数。

#binds two different datasets

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函数的工作和应用。

我希望这些插图能帮助您理解这些功能。

在R中绑定多个行组

在本节中,我们将重点讨论使用函数rbind()绑定多个(超过2个)行组。
让我们看看它是如何工作的。

#binds rows of 3 data sets
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编程中的数据处理中有着无穷的应用。