2016-07-07 14 views
4

Ich versuche, einen räumlichen Polygons Datenrahmen und einen Datenrahmen zusammenzuführen, aber ich bekomme immer einen Fehler "nicht eindeutigen Übereinstimmungen erkannt". Ich habe duplicate() für die Spalten, die für by.x und by.y verwendet werden, ausgeführt, und es wurden keine Duplikate gefunden. Was könnte sonst noch zu diesem Fehler führen?Was kann einen Fehler "nicht eindeutige Übereinstimmungen erkannt" in einer r-Zusammenführung verursachen?

> 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 

Die Anrufe

duplicated(Africa.sh$NAME) 
duplicated(AnteNatal.df$Country) 

beide Rück listet alle FALSCH enthält. Allerdings, wenn ich zu verschmelzen versuchen, erhalte ich

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

können Sie uns zeigen, um den Anruf zu 'merge'? –

+0

und wie haben Sie 'duplicated' verwendet? – RobertH

Antwort

7

Verwenden Sie die sp :: Merge-Funktion mit dem duplicateGeoms Argument auf TRUE gesetzt (wenn TRUE Geometrien in x dupliziert, wenn es mehrere Übereinstimmungen zwischen Datensätzen in x und y

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

(ich weiß, diese Frage ist älter, aber ich kam über sie, während auf der Suche nach einer Antwort auf es selbst)