2013-07-10 4 views
1

나는 ggmap R 패키지를 가지고 놀았으며 지리적 데이터를 보여주는 기능을 계획하고 싶습니다. 나는 geocode 함수로 가지고있는 도시 인구 데이터의 간단한 플롯을 만들려고 노력했지만, 논리적 인 방식으로 데이터를 정렬하는 방법을 알 수는 없습니다. 약자로, 정말어떻게 R 데이터 프레임에 목록을 추가 할 수 있습니까?

   City Type Population 
1   Detroit city  713777 
2  Grand Rapids city  188040 
3   Warren city  134056 
4 Sterling Heights city  129699 
5   Lansing city  114297 
6  Ann Arbor city  113934 

같은 목록에 구조화 된 데이터를 가지고 내가 geocode에 의해 반환 된 위도와 경도 항목이 "열"을 추가하고 싶습니다. 위의 dataframe가 미시간라는 이름의 경우 특히, 나는 목록을 생성, 좌표 추측 (이 경우, 도시 이름) 문자열을 받아 Google지도 API를 사용

lapply(as.vector(michigan$City), geocode) 

와 좌표를 잡는거야 목록 :

[[1]] 
     lon  lat 
1 -83.04575 42.33143 

[[2]] 
     lon  lat 
1 -85.66809 42.96336 

[[3]] 
     lon lat 
1 -83.0282 42.493 

[[4]] 
     lon  lat 
1 -83.0302 42.58031 

[[5]] 
     lon  lat 
1 -84.55553 42.73253 

[[6]] 
     lon  lat 
1 -83.74304 42.28083 
나는 "열"로 michigan 데이터 프레임에 위도와 경도 값을 추가하고 싶습니다,하지만 내 lapply의 결과가리스트의 목록이기 때문에, 이것은 단지 슬라이스보다 더 까다 롭습니다

어떤 배열 - R에서 이것을 관용적으로하는 가장 좋은 방법은 무엇입니까?

+1

는 당신이'지오()'기능을 위해 사용하는 몇 가지 예제 코드와 데이터를 게시 할 수 있습니까? 간단한 대답은'merge()'함수를 사용하는 것입니다. 데이터가 실제로 잘 구성되어 있지 않으면'cbind()'만으로 충분할 수 있습니다. – David

+2

결과에'lapply' 또는 ** do.call (rbind, ...) 대신 ** plyr **에서'ldply'을 시도하십시오. – joran

+0

안녕하세요. 트래버스 시티는 어디 있습니까? –

답변

5

으로 그것은 간단합니다 :

cbind(your_df, geocode(your_df$City)) 
+1

+1. 이것은 실제로 호출 될'cbind.data.frame'입니다. –

관련 문제