1

合并后的结果数据集没有相同数量的非缺失值(我合并的变量在任何一个数据集中都没有重复项),而是具有相同数量的缺失值 - 这意味着我得到了 72229 个虚假值,都完全一样第二个数据集中的值。

第二个数据集中只有一行具有该虚假值,看起来非常正常。如果我将它的值设置为缺失,我会得到想要的结果(除了一个缺失值)。如果我将它的值设置为 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
4

0 回答 0