4
我有一個函數,可以在輸入州名縮寫(例如「KY」或「AL」)時列出每個州的所有州的郵政編碼和種羣。通過輸入「ALL」返回函數中的所有值
我想在輸入「全部」時返回所有的郵政編碼和人口,但我似乎無法弄清楚如何做到這一點。我試圖在函數中的for循環中寫入,以取得成功。
下面是函數:
StatePop1 <- function(StAbb="KY"){
library(rjson)
St <- c('AL','AK','AZ','AR','CA','CO','CT','DE','FL','GA','HI','ID','IL','IN','IA','KS','KY','LA','ME','MD','MA','MI','MN','MS','MO','MT','NE','NV','NH','NJ','NM','NY','NC','ND','OH','OK','OR','PA','RI','SC','SD','TN','TX','UT','VT','VA','WA','WV','WI','WY')
FI <- c('01','02','04','05','06','08','09','10','12','13','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36','37','38','39','40','41','42','44','45','46','47','48','49','50','51','53','54','55','56')
FIPS.table <- data.frame(St,FI,stringsAsFactors = FALSE)
StAbb <- toupper(StAbb)
fips_code <- FIPS.table[FIPS.table$St == StAbb,"FI"]
json_file <- paste("http://api.census.gov/data/2010/sf1?get=P0010001&for=zip+code+tabulation+area:*&in=state:",fips_code,sep="")
json_data <- fromJSON(file=json_file)
Pop <- as.data.frame(do.call("rbind", json_data), stringsAsFactors = FALSE)
names(Pop) <- c("Population","FIPS","ZipCode")
Pop <- Pop[-1,]
Pop$Population <- as.numeric(Pop$Population)
Pop$ZipCode <- as.character(Pop$ZipCode)
Pop$State <- StAbb
Pop <- Pop[,c("State","ZipCode","Population")]
return(Pop)
}
任何幫助,將不勝感激。
這很好。感謝jsonlite的領導,速度要快得多。我知道我需要使用樂器,只是不知道如何融入它。如果有人試圖運行這個代碼,只要確保你安裝了正確的軟件包並設置了選項(max.print = big#),以便打印所有內容。 – SuperCereal