1

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

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

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

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

nrow(m) <- 29730

我得到 29730 行的“m”。仅当我将 B 合并到 A 时,“m”才应该有 11537 行。我无法确定这背后的原因。有人能帮帮我吗?“A”中添加了什么?

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

4

1 回答 1

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 行 - 6 行 id=1 和 4 行 id=2

我的猜测是这导致您合并的 data.frame 变得比预期大。

于 2013-06-25T14:04:48.740 回答