合并后得到的数据集不具有相同数量的非缺失(我合并的变量在任一数据集中没有重复),而是具有相同的缺失数 - 这意味着我得到72229个虚假值,所有与第二个数据集中的一个值完全相同。
第二个数据集中只有一行具有该虚假值,看起来非常正常。如果我将其值设置为missing,则会得到所需的结果(除了缺少的值)。如果我将其值设置为1000,则结果会得到72229次1000。所以我认为这是关于那一行的东西,但是如果尝试使用该行和其他一些来制作可重现的示例,则不会发生错误。
我在一个足够小的数据子集中制作一个可重复的例子是不成功的,我可以轻松地分享它,所以我主要是征求圣人的建议。关于如何重现问题的建议也很不错。
> table(is.na(cogdj$int.youth))
FALSE TRUE
1731 178
> sum(duplicated(soep$PERSNR))
[1] 0
> sum(duplicated(cogdj$PERSNR))
[1] 0
> soep = merge(soep,cogdj[,c('PERSNR','ana','ded','mat','ari','int.youth')],by="PERSNR",all.x=T,incomparables=NA)
> table(is.na(soep$int.youth))
FALSE TRUE
73959 178
> nrow(soep[which(round(soep$int.youth,20)==1.6737269266506955567),])
[1] 72229
> nrow(cogdj[which(round(cogdj$int.youth,20)==1.6737269266506955567),])
[1] 1
> cogdj[which(round(cogdj$int.youth,20)==1.6737269266506955567),c('PERSNR','int.youth')]
PERSNR int.youth
1 609104 1.673727