4.9 数据集的合并
如果数据分散在多个地方,你就需要在继续下一步之前将其合并。本节展示了向数据框中添加列(变量)和行(观测)的方法。
4.9.1 添加列
要横向合并两个数据框(数据集),请使用merge()
函数。在多数情况下,两个数据框是通过一个或多个共有变量进行联结的(即一种内联结,inner join)。例如:
total <- merge(dataframeA, dataframeB, by="ID")
将dataframeA
和dataframeB
按照ID
进行了合并。类似地,
total <- merge(dataframeA, dataframeB, by=c("ID","Country"))
将两个数据框按照ID
和Country
进行了合并。类似的横向联结通常用于向数据框中添加变量。
注意 如果要直接横向合并两个矩阵或数据框,并且不需要指定一个公共索引,那么可以直接使用
cbind()
函数:
- total <- cbind(A, B)
这个函数将横向合并对象A和对象B。为了让它正常工作,每个对象必须拥有相同的行数,且要以相同顺序排序。
4.9.2 添加行
要纵向合并两个数据框(数据集),请使用rbind()
函数:
total <- rbind(dataframeA, dataframeB)
两个数据框必须拥有相同的变量,不过它们的顺序不必一定相同。如果dataframeA
中拥有dataframeB
中没有的变量,请在合并它们之前做以下某种处理:
删除
dataframeA
中的多余变量;在
dataframeB
中创建追加的变量并将其值设为NA
(缺失)。
纵向联结通常用于向数据框中添加观测。