2014-04-12 1 views
0

저는 미국 전역에 17854 개의 뚜렷한 우편 번호 수준이있는 데이터 세트를 보유하고 있습니다. R에 어떤 함수가 있습니까? 또는 레벨 수를 줄일 수있는 방법이 있습니까? 나는 그것을 500 가지 수준 이하로 줄여야한다.축소 될 R의 우편 번호

감사합니다,

+0

을 의미합니까 얻을 수준별로? 우편 번호는 중첩되지 않으며 중첩 된 17854도가 아닙니다. – user2357112

+0

뒤에 오는 2 자리를 2로 나누고 잘립니다. 비올라. –

+0

수준은 다음과 같습니다. 내 데이터 집합의 우편 번호는 범주 형 변수이며 17854 개의 고유 한 우편 번호가 있으므로 수준으로 참조됩니다. 나는 analytics에 초보 다. 적절한 단어를 사용하는 것이 잘못되었을 수 있습니다! –

답변

0
trunc(as.numeric(substr(zipvec, 1,3))/2) 
+0

감사합니다. 나는 또한 자르면 ZIP 코드를 영자 도시/주 이름에 자동으로 매핑 할 수있는 방법이 있는지 궁금한가요? 지도에서 데이터를 가져 오는 기능 또는 그와 비슷한 기능? –

+0

http://geocommons.com/help/Geocoding_Data –

0

Minal이 데이터는 당신을 위해 유용 할 수 있습니다. 그것은 등 인구, 도시, 카운티, 위도/경도, 상태, 유형에 대한 데이터가

> url <- "http://www.unitedstateszipcodes.org/zip_code_database.csv" 
> tmp <- tempfile() 
> download.file(url, tmp) 
> zips <- read.csv("zip_code_database.csv") 
> unlink(tmp) 
> zip.sub <- zips[zips$type == "STANDARD", 
        c("zip", "state", "latitude", "longitude")] 

> zip.sub[sample(1:nrow(zip.sub), 10, FALSE), ] 
##   zip state latitude longitude 
## 12121 28649 NC 36.33 -81.23 
## 4129 11359 NY 40.79 -73.77 
## 22577 51026 IA 42.23 -96.09 
## 40251 95480 CA 38.64 -123.37 
## 23441 53804 WI 42.89 -90.92 
## 40574 96022 CA 40.33 -122.45 
## 13589 31548 GA 30.79 -81.66 
## 40557 96001 CA 40.60 -122.46 
## 40428 95757 CA 38.35 -121.42 
## 4531 12205 NY 42.66 -73.79 

우리가 @BondedDust에 의해 게시 된 절단 단계 기능을 적용 할 때, 우리는 당신이 무엇

> trn <- trunc(as.numeric(substr(zip.sub$zip, 1,3))/2) 
> length(unique(trn)) 
## [1] 442 
관련 문제