2016-07-22 4 views
1

저는 R을 나에게 가르치고 있으며, 현재 R의 Choropleths를보고 있습니다.이 경우 나는 패키지를 사용하고 있습니다. 'choroplethr'및 'choroplethrAdmin1'.

이 패키지의 지시에 따라 모든 예를 계획 한 후 독일의 행정 1 단계지도를 임의의 값으로 플롯하려고합니다. 그래서 admin_1choropleth 명령을 사용하려고했습니다. 도움말 기능은 명령이 특정 열이있는 데이터 집합을 필요로 말한다 :

  • 가 패키지
  • 에서 제공하는 'admin1.regions' 데이터 세트에있는 것과 같은 철자와 지역을 포함한다'지역 '이라는 하나
  • 이 코드 데이터 집합하여 당 ² Japans 인구의 맵을 생성하는 예를 들어 영역

에 포함 된 값과 일치하는 '값'이라고하는 제 :이라 열을 포함 'df_japan_census' '를 값 '및 하나는'지역 '

admin1_choropleth("japan", 
       df_japan_census, 
       "Japan Population", 
       "per km²") 

독일의 예제지도를 플로팅하기 위해 'admin1.regions'- 데이터 세트 (필요한 지역이 포함되어 있기 때문에)를 사용하고'value '열 을 추가했습니다. 그 다음 나는 그것을 음모를 꾸미려고 노력했다.

admin1.regions$value<-3:4401 #the numbers are just placeholders 
admin1_choropleth("germany",admin1.regions) 

을하지만 지금이 오류를 얻고있다 :이 코드가 찾고 어떻게

Error: anyDuplicated(self$user.df$region) == 0 is not TRUE

이 유래에 대한 내 첫 번째 질문에 내가 그렇게, 어느 쪽도 천연 영어 스피커 나 프로그래머가 아니야 내 문제를 이해할 수 있기를 바랍니다.

질문이 있으면 언제든지 저에게 질문하십시오.

최저

, 마르셀

P.S은 : 쉽게 당신이 당신이 오류를 재현하는 데 필요한 모든해야 있도록합니다.

install.packages("choroplethr") 
library(choroplethr) 
install.packages("choroplethrAdmin1") 
install.packages("ggplot2") 
library(choroplethrAdmin1) 
library(ggplot2) 

admin1.regions$value<-3:4401 
admin1_choropleth("germany",admin1.regions) 

답변

1

이 오류가 admin1.regions의 열 region의 중복으로 인해 얻을 수있는 이유. unique(admin1.regions$region)을 사용하면 길이 4358 인 벡터를 얻을 수 있고, orignal 데이터 세트는 4399 (41 복제본)입니다.

이 문제를 해결하는 방법은 무엇입니까? "germany"을 포함하는 항목 만 필요하므로 모든 비 -"gemany" 항목을 제거하십시오.

admin1.regions$value<-3:4401 #the numbers are just placeholders 
admin1.regions1 <- admin1.regions[which(admin1.regions$country == "germany"),] 
admin1_choropleth("germany",admin1.regions) 

이제 코드가 작동합니다.

추신. 멋진 이름

+0

감사합니다. Marcel, 당신도 멋진 이름이 있습니다. : D 'admin1.regions1'의 데이터를 마지막 줄에 사용하면 완벽하게 작동합니다! 정말 고마워요! –