2016-05-10 2 views
0

ich vor kurzem mit Datensätzen arbeiten, die in der folgenden Reihenfolge sind:Daten in R Merging, wenn es zwei Referenzspalten

country year ... 
Albania 2012 ... 
Albania 2013 ... 
Albania 2014 ... 
Albania 2015 ... 
Albania 2016 ... 
Bulgaria 2012 ... 
Bulgaria 2013 ... 
Bulgaria 2014 ... 
Bulgaria 2015 ... 
Bulgaria 2016 ... 
...  ... 
...  ... 

Ich muss oft eine neue Spalte auf die vor der Analyse Datensatz hinzufügen, aber die Anwesenheit des Jahres Spalte machen es etwas komplizierter für mich. Stellen Sie sich einen zweiten Datensatz wie:

country year gdp 
Albania 1970 12111 
Albania 1971 12222 
...  ... ... 
Albania 2016 22333 
...  ... ... 
Bulgaria 1970 15333 
Bulgaria 1971 15444 
...  ... ... 

Wie kann ich die über zwei Datensätze in einer Art und Weise zusammenführen, die dafür sorgt, dass der GDP-Wert geht nach rechts Land-Jahr Reihe?

Vielen Dank.

Antwort

1

Lassen Sie Ihren ersten Datensatzes df1 und die zweite df2

df3 <- merge(x=df1,y=df2,by=c("country","year"),all.x=TRUE) 

, die einen linken äußeren Join sein werden (vorausgesetzt, Sie BIPs für alle Jahre in df1 haben)

Sehen Sie hier für weitere Informationen: How to join (merge) data frames (inner, outer, left, right)?