2016-07-22 63 views
1

我是自我教學R,目前我在R看Choropleths。爲此我使用包'choroplethr'和'choroplethrAdmin1'。

在繪製出這些軟件包的指令中的所有示例之後,我想繪製德國行政級別1的隨機值地圖。所以我試圖使用admin_1choropleth命令。該幫助功能說,命令需要有兩個特定的列的數據集:

  • 一個稱爲「區域」,其包括具有相同拼寫的區域,因爲它們是在由包
  • 提供的「admin1.regions'-數據集
  • 第二被稱爲「價值」到包括值匹配到例如該代碼產生使用數據集中每平方公里地圖日本人口區域

:「df_japan_census」,其包含一列稱爲「值'和一個叫'區域'

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

因此,爲繪製德國的示例地圖,我只使用'admin1.regions'數據集(因爲它包含所需的區域),並向其添加了一列'值' 。然後我試圖繪製它。這是代碼是如何尋找:

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.regionsregion列的原因。如果你使用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) 

現在你的代碼應該工作。

PS。很酷的名字

+0

謝謝馬塞爾,你也有一個很好的名字。 :D 當我在最後一行使用'admin1.regions1'的數據時,它完全正常工作! 非常感謝! –

相關問題