r的merge ) )函数合并数据的r中,merge ) )函数可以合并数据框。 强大的是在两个不同的数据框中标识公共列或行。
merge ) )检索数据集的交集merge ) )的最简单格式是检索两个不同数据框的交集。 例如,检索cold.states和large.states完全匹配的数据。 代码如下。
merge(Cold.States,large.states ) namefrostarea1Alaska 152564322 Colorado 1661037663 Montana 1551455874 Nevada 188109889属性数据库
merge ) )函数有很多参数,非常可怕。 但是,他们与几种类型的参数有关。
x:第一个数据框。
y:中的第二个数据框。
by、by.x和by.y:在两个数据框中指定匹配的列名。 默认情况下,使用两个数据框中的相同列名。
all、all.x和all.y:指定合并类型的逻辑值。 默认值为false,all=FALSE。 仅返回匹配的行。
最后一组参数all、all.x和all.y需要进一步说明,才能确定合并类型。
不同类型的合并merge ) )如何理解函数支持四种类型的数据合并:
Natural join:使用all=FALSE参数仅返回两个数据框中匹配的数据框行。
Full outer join:是一个参数,all=TRUE,返回两个数据框中的所有行。
Left outer join:返回x数据框中的所有行以及y数据框中的匹配行。 参数为all.x=TRUE。
Right outer join:返回y数据框中的所有行以及与x数据框匹配的行。 参数为all.y=TRUE。
若要实现“完全集成”(full outer join ),请返回示例数据中的美国州,并使用all=TRUE参数执行完全集成cold和large state。
Merge(Cold.States,large.states, all=TRUE ) namefrostarea1Alaska 152564322 Arizona na 1134173 californiana 156361 . 13 Texas na 26213414 Vermont 168n a 15 Wyoming 173n的
上述代码执行完全合并,不匹配列的值为NA。
本文详细介绍了r的merge (函数参数和合并数据类型。 利用sql的表连接概念进行类比,使其简单易懂。