使用R将zipcodes转换为美国州名

时间:2016-01-08 21:37:22

标签: r sas

是否有任何功能或简单,快捷的方法将美国邮政编码转换为使用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行,因此需要数小时。 请提出一些建议。谢谢!

1 个答案:

答案 0 :(得分:2)

哦,亲爱的,双循环效率非常低。首先,对于单个邮政编码,通过执行zipcode$state[zipcode$zip %in% YOURZIPCODEHERE]

简单地获得匹配状态要快得多

使用match的一大堆邮政编码可以更好地满足您的需求。

dmefzip$state = zipcode$state[match(dmefzip[,1],zipcode$zip)]