合并缺失值后具有虚假值

时间:2013-10-14 10:00:09

标签: r merge

合并后得到的数据集不具有相同数量的非缺失(我合并的变量在任一数据集中没有重复),而是具有相同的缺失数 - 这意味着我得到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

0 个答案:

没有答案