6

我一直在准备我的数据,但不知何故,在合并我的数据集后我的数据少了很多。

由于我的数据中没有经度和纬度,因此在下载包邮政编码后我一直在使用以下代码(tel1我的数据包含邮政编码)

merge <- merge(zipcode,tel1,by.x=c('zip'),by.y=c('zip_code'))

在合并之前我有 195956 个观察值,而在合并之后它下降到 180090,但我不明白为什么。

在我看来,我只是将它们合并到zip等于的位置,zip_code并将数据集邮政编码中的信息添加到我的文件夹 tel1

之后我想删除包含 NA 的行,因为合并无法定义任何数字或其他内容。我用了这段代码

final <- result[complete.cases(result),]

然后我的观察次数下降到 51006,我简直不敢相信。我的数据中不可能有这么多的不匹配。

还有其他我应该使用的代码吗?

之后我一直在尝试使用代码删除重复项

 last <- with(final,final[order(state,latitude,longitude),])

但观察次数是一致的(51006)。

我做错了什么,或者有没有办法在合并数据后再次将我的数据放入 excel 文件中,以便我可以手动检查是否真的有这么多不匹配?谢谢

4

1 回答 1

7

可以使用all参数来merge

merge(zipcode, tel1, by.x='zip', by.y='zip_code', all.y=TRUE)

但是,对于在邮政编码数据中未找到匹配项的行,将有NAs。因此,如果您当时na.rm或类似的结果,您将最终遇到相同的“数据丢失”

检查合并后 lat 和 long 列中存在 NA 的行的邮政编码:

tel1[is.na(tel1$latitude) | is.na(tel1$longitude),]

我的猜测是它们不是有效的邮政编码,或者您拥有的邮政编码列表不完整。

于 2012-10-17T14:52:49.600 回答