我一直在准备我的数据,并且在合并我的数据集后,我的数据减少了。
由于我的数据中没有经度和纬度,因此我在下载软件包后使用了以下代码 zipcode (tel1
是包含zipcodes的数据)< / p>
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文件,以便我可以手动检查是否真的有这么多不匹配? 感谢
答案 0 :(得分:7)
可以使用all
参数merge
。
merge(zipcode, tel1, by.x='zip', by.y='zip_code', all.y=TRUE)
但是,对于在邮政编码数据中找不到匹配项的行,会有NA
个。因此,如果你然后na.rm
或其他相应的东西,你将会遇到相同的“数据丢失”
检查合并后lat和long列中有NA的行的邮政编码:
tel1[is.na(tel1$latitude) | is.na(tel1$longitude),]
我的猜测是它们不是有效的邮政编码,或者您的邮政编码列表不完整。