R语言rbind()函数完全指南:轻松实现数据框行绑定操作

这是文章《R中的rbind()函数——轻松绑定行》的第1部分(共4部分)。

在R语言中,使用rbind()函数可以非常轻松地将行进行绑定或合并。

rbind()代表”row bind”(行绑定)。简单来说,它能够将多个数据行合并成一个整体。这包括合并两个数据框、向量等多种数据结构。

本文将详细探讨R编程中rbind()函数的用途和应用场景。

现在,让我们直接进入主题!


rbind()函数的语法

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

rbind(x, x1)

参数说明:

  • x = 输入数据
  • x1 = 需要绑定的数据

使用rbind()绑定行的概念

在数据处理过程中,将多个数据框的行进行绑定或合并的概念非常有价值。

下面的图表将帮助你理解rbind()函数的工作原理。

R中的rbind函数

如图所示,你可以清晰地看到不同数据框的行是如何通过rbind()函数进行绑定/合并的。


在R中实现rbind()函数

如你所知,R中的rbind()函数用于将不同数据集的行绑定在一起。

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

# 创建一个数据框

Student_details <- c("Mark", "John", "Fredrick", "Floyd", "George")
Student_class <- c("高中", "大学", "高中", "高中", "大学")
df1 <- data.frame(Student_class, Student_details)

df1

以上代码将构建一个简单的数据框,展示学生的班级和姓名信息。

   Student_class    Student_details
1       高中            Mark
2       大学            John
3       高学        Fredrick
4       高中           Floyd
5       大学          George

现在,我们有一个包含5行的数据框。让我们再创建一个数据框。

# 创建另一个数据框

Student_details <- c("Bracy", "Evin")
Student_class <- c("高中", "大学")
Student_rank <- c("A", "A+")
df2 <- data.frame(Student_class, Student_details, Student_rank)

df2
    Student_class      Student_details
1       高中           Bracy
2       大学            Evin

现在,我们有两个行数不同的数据框(df1和df2)。让我们使用rbind()函数将这两个数据框绑定成一个单独的数据框。

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

令人惊讶的是,整个绑定过程只需要一行代码。

# 绑定两个输入数据框的行

rbind(df1, df2)
    Student_class     Student_details
1       高中            Mark
2       大学            John
3       高学        Fredrick
4       高中           Floyd
5       大学          George
6       高中           Bracy
7       大学            Evin

如上述输出所示,结果数据框是两个原始数据框的结合版本。


使用rbind()函数将长度不同的两个数据框进行绑定

这是文章《R中的rbind()函数——轻松绑定行》的第2部分(共4部分)。

在前面的部分中,我们已经将这两个行组合并在一起。

在本节中,我们将使用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'中我们有两列,在数据框'df2'中我们有三列。

不要担心!我们有bind_rows()函数可以帮助我们处理这种情况。


使用bind_rows()函数绑定不均匀的数据集

这是文章《R中的rbind()函数——轻松绑定行》的第3部分(共4部分)。

bind_rows()是dplyr包中的一个函数。在执行此函数之前,我们需要先导入dplyr包。

我们正在使用上面部分中存在的相同数据框,即df1和df2。让我们看看它如何工作。

#安装所需包
install.packages('dplyr')
#导入库
library(dplyr)
#绑定行
bind_rows(df1,df2)
   学生班级    学生详情   学生等级
1   高中            马克         <NA>
2       大学            约翰         <NA>
3   高中        弗雷德里克         <NA>
4   高中           弗洛伊德         <NA>
5       大学          乔治         <NA>
6   高中           布雷西          A
7       大学            埃文          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函数工作和应用的示例。

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


将多个行组绑定在R中

在本部分中,我们将重点介绍如何使用rbind()函数绑定多个(超过两个)行组合。让我们来看看它的工作原理。

# 绑定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()函数轻松地将两个具有相同列数的数据框绑定在一起。

同样地,如果数据框的列数不相等,您可以使用dplyr包中的bind_rows()函数。

以上就是全部内容,祝您使用愉快!

更多阅读:R文档

bannerAds