【发布时间】:2012-10-07 20:14:03
【问题描述】:
我一直在准备我的数据,但不知何故,在合并我的数据集后我的数据少了很多。
由于我的数据中没有经度和纬度,所以我在下载包 zipcode 后一直使用以下代码(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 文件,以便我可以手动检查是否真的有这么多不匹配? 谢谢
【问题讨论】:
-
尝试使用 plyr 包中的
join,它比合并更直观。 -
您还可以查看
all到merge的参数。merge(zipcode, tel1, by.x='zip', by.y='zip_code', all.y=TRUE) -
感谢@Justin,这完全没有损失,但如果我继续使用 final
-
我们无法解决您的数据中存在 NA 值的问题。如果任何列中有 NA 值,则使用
complete.cases将删除整行。也许在读取数据时出现了问题,这些数据在不应该出现的地方产生了缺失值......? -
好点有一些行包含 NA 因为我的数据不完整。我怎样才能设法将 NA 从纬度和经度列中删除
标签: r merge duplicates