2016-07-22 32 views
1

私は自分自身にR教えていますし、現時点ではRのChoroplethsを見ています。 'choroplethr'と 'choroplethrAdmin1'です。

これらのパッケージの指示のすべての例をプロットした後、ドイツの行政1レベルのマップをランダムな値でプロットしたかったのです。だから私はadmin_1choroplethコマンドを使用しようとしました。ヘルプ機能コマンドは、特定の2つの列を持つデータセットの必要があると述べている:彼らはパッケージで提供される「admin1.regions'データセット内にあるものと同じつづりで領域を含む「領域」と呼ば

  • 1を
  • 「df_japan_census「値と呼ばれる列を含む:このコードは、データセットを使用して、平方キロメートル当たりJapansの人口のマップを生成し、例えば領域

に含む値と一致するように「値」と呼ばれる

  • 秒'と呼ばれ、1つは'地域 'と呼ばれます

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

    ドイツのマップ例をプロットすると、私は 'admin1.regions'-dataset(必要な領域が含まれているため)を使用し、列' 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

    ので、これはstackoverflowの上の私の最初の質問であると私は自然な英語の話者やプログラマでもありませんよあなたが私の問題を理解できることを願っています。

    ご不明な点がございましたら、お気軽にお問い合わせください。

    ベスト、 マルセル

    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のベクトルが得られ、一方、信号データセットは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

    ありがとうMarcel、あなたも素敵な名前があります。 :D 最後の行に 'admin1.regions1'のデータを使用すると、完全に機能しています! ありがとうございました! –

    関連する問題