4.9 数据集的合并

如果数据分散在多个地方,你就需要在继续下一步之前将其合并。本节展示了向数据框中添加列(变量)和行(观测)的方法。

4.9.1 添加列

要横向合并两个数据框(数据集),请使用merge()函数。在多数情况下,两个数据框是通过一个或多个共有变量进行联结的(即一种内联结,inner join)。例如:

  1. total <- merge(dataframeA, dataframeB, by="ID")

dataframeAdataframeB按照ID进行了合并。类似地,

  1. total <- merge(dataframeA, dataframeB, by=c("ID","Country"))

将两个数据框按照IDCountry进行了合并。类似的横向联结通常用于向数据框中添加变量。

注意 如果要直接横向合并两个矩阵或数据框,并且不需要指定一个公共索引,那么可以直接使用cbind()函数:

  1. total <- cbind(A, B)

这个函数将横向合并对象A和对象B。为了让它正常工作,每个对象必须拥有相同的行数,且要以相同顺序排序。

4.9.2 添加行

要纵向合并两个数据框(数据集),请使用rbind()函数:

  1. total <- rbind(dataframeA, dataframeB)

两个数据框必须拥有相同的变量,不过它们的顺序不必一定相同。如果dataframeA中拥有dataframeB中没有的变量,请在合并它们之前做以下某种处理:

  • 删除dataframeA中的多余变量;

  • dataframeB中创建追加的变量并将其值设为NA(缺失)。

纵向联结通常用于向数据框中添加观测。