2016-07-07 3 views
4

私は空間ポリゴンのデータフレームとデータフレームをマージしようとしていますが、 "非ユニークマッチの検出"エラーが発生し続けます。 by.xとby.yに使用されている列でduplicated()を実行し、重複は検出されません。このエラーの原因は他に何か? rマージで「一意でない一致が検出されました」というエラーを引き起こす原因は何ですか?

> head(AnteNatal.df) 
       Country Year(s) AnteNatalValue 
1   Afghanistan 2011   14.6 
2    Albania 2009   66.8 
3    Angola 2009   47.1 
4 Antigua and Barbuda 2011   100.0 
5   Argentina 2006   24.7 
6    Armenia 2010   92.8 

> Africa.sh$NAME[1:5] 
[1] Angola  Burundi  Benin  Burkina Faso Botswana  
243 Levels: Afghanistan Aland Albania Algeria American Samoa Andorra Angola  Anguilla Antarctica ... Zimbabwe 
通話
duplicated(Africa.sh$NAME) 
duplicated(AnteNatal.df$Country) 

両方

はすべてFALSEを含むリストを返します。私はマージしようとすると、しかし、私は

> merge(Africa.sh,AnteNatal.df, by.x = "NAME", by.y ="Country") 
Error in .local(x, y, ...) : non-unique matches detected 
+2

あなたは私たちmerge' 'へのコールを表示することができますか? –

+0

あなたはどのように 'duplicated'を使いましたか? – RobertH

答えて

7

使用SP :: TRUEに設定duplicateGeoms引数を持つ関数をマージ取得(xとyのレコードとの間に複数の一致がある場合、xのTRUEジオメトリが重複している場合)

require(sp) 
    ?sp::merge 
    merge(spatial_data, data_frame, by = 'match_column', duplicateGeoms = TRUE) 

は(私はこの質問が古いですけど、それに答え、自分のための検索でいる間、私はそれに出くわした)

関連する問題