是否有任何功能或简单,快捷的方法将美国邮政编码转换为使用R的州名。为此我们在SAS中有zipstate()
功能。
在R中,我尝试了这个:
library(zipcode)
newzips = as.data.frame.factor(zipcode[,1])
for(i in 1:nrow(dmefzip)){
for(j in 1:nrow(zipcode)){
if(dmefzip[i,1]== (newzips[j,1]) ){
dmefzip[i,"state"] = zipcode[j,3]
break
}
}
}
它正在运行,但由于我的数据中有大约35000行,因此需要数小时。 请提出一些建议。谢谢!
答案 0 :(得分:2)
哦,亲爱的,双循环效率非常低。首先,对于单个邮政编码,通过执行zipcode$state[zipcode$zip %in% YOURZIPCODEHERE]
使用match
的一大堆邮政编码可以更好地满足您的需求。
dmefzip$state = zipcode$state[match(dmefzip[,1],zipcode$zip)]