在R中使用“merge()”时出错

时间:2013-06-25 10:09:06

标签: r merge

我在两个数据帧A和B上使用合并功能

nrow(A) <- 11537
nrow(B) <- 734

但是当我按如下方式应用合并功能时:

m <- merge(A,B,all.x=TRUE,by="id")

nrow(m) <- 29730

我用29730行获得“m”。 “m”应该只有11537行,因为我将B合并为A。我无法确定这背后的原因。有人能帮帮我吗?在“A”中添加了什么?

文件很大,我无法手动检查。

1 个答案:

答案 0 :(得分:2)

如果您的id值在每个data.frame中不唯一,则会在结果中创建可能匹配的每个组合。例如:

a = data.frame(id=c(1,1,1,2,2),val=1:5)
b = data.frame(id=c(1,1,3,2,2),valb=11:15)
m = merge(a,b,by="id",all.x=T)

m将有10行 - 其中id = 1且4,id = 2

我猜这是导致你的合并data.frame变得比预期更大的原因。