2014-12-18 2 views
1

주소가 nx1 개 (클래스는 '문자')이며 각 주소의 지오 코드는 nx2 data.frame (위도와 경도)로 출력하고 싶습니다. R에서 이것을 어떻게 작성하겠습니까? 효율적인 방법이 있습니까? 몇 가지 예를 보여줄 수 있다면 좋을 것입니다.주소의 문자 행렬을 gecode하고 Long과 Lat 만 출력하는 방법은 무엇입니까?

library(taRifx.geo) ## for geocode 

hmm <- c() 
for (i in (R2012)){ 
    hmm <- c(hmm, geocode(i, output = c("latlon", "latlona", "more", "all"))) 
} 

을하지만 결과는 위도 년대와 경도의의 교류 단일 열입니다 : 지금

, 난 그냥 이런 식으로 루프를 실행하는거야 사용할 강제하는 경우

$lon 
[1] -122.1034 

$lat 
[1] 47.55304 

$lon 
[1] -122.1034 

$lat 
[1] 47.55304 
+0

[R에 taRifx.geo와 빙 옵션을 사용]의 중복 가능성 (http://stackoverflow.com/questions/26075811/using-bing-option-with-tarifx-geo-in-r) – hrbrmstr

+0

아니. 완전히 다른. 내가 원하는 것은 "주소 목록에서 위도와 경도의 데이터 프레임을 만드는 방법"입니다. – user1769069

+1

작은 실제 샘플과 코드를 제공해 주시겠습니까? – jazzurro

답변

1

for 루프를 사용하면 다음과 같이 할 수 있습니다.

library(tidyr) 

R2012 <- c("Tokyo", "Paris") 

lonlat <- list() 

for(i in R2012){ 

    lonlat[[i]] <- geocode(i, output = c("latlon", "latlona", "more", "all")) 
} 

unnest(lonlat, city) 

# city  lon  lat 
#1 Tokyo 139.691706 35.68949 
#2 Paris 2.352222 48.85661 

하지만 여기서는 루프가 필요하지 않다고 생각합니다. 대신이 같은 것을 시도해 볼 수 있습니다.

foo <- geocode(R2012, output = c("latlon", "latlona", "more", "all")) 
foo$city <- R2012 

#   lon  lat city 
#1 139.691706 35.68949 Tokyo 
#2 2.352222 48.85661 Paris