merge(df1,df2,...)
verbindet zwei data.frames, wie ein join in SQL. Ist kein weiterer Parameter angegeben, ist es ein inner join, mit all.x, all.y oder all=TRUE wird daraus ein left, right oder full join. Mit dem Parameter by wird angegeben, welche Spalten als ID für gleiche Einträge genommen werden. Ist by nicht angegeben, werden alle gleichnamigen Spalten verwendet.
Wer mehr über JOINs wissen will, schaut mal im Wikipedia-Eintrag rein.
Beispiel-Code
# Beispieldatensatz iris mit 150 Zeilen, ergänzt um ID-Spalte df1 <- data.frame(ID=1:nrow(iris), iris, stringsAsFactors = FALSE) # Ergänzung von zwei zufälligen Features für die ersten 100 IDs aus df # und 20 zusätzliche, die nicht in df vorkommen df2 <- data.frame(ID=c(1:100, 151:170), feature1=rnorm(120), feature2=rbinom(120,1,0.3)) #inner join: nur gemeinsame IDs #also 100 Zeilen ij <- merge(df1, df2, by="ID") #left join: alle IDs aus linkem Datensatz, rechten Datensatz mit NA ergänzt #also 150 Zeilen lj <- merge(df1, df2, by="ID", all.x=TRUE) #right join: alle IDs aus rechtem Datensatz, linken Datensatz mit NA ergänzt #also 120 Zeilen rj <- merge(df1, df2, by="ID", all.y=TRUE) #full join: alle IDs aus beiden Datensätzen, nicht passende mit NAs ergänzt #also 170 Zeilen fj <- merge(df1, df2, by="ID", all=TRUE)
Siehe auch
Die 4 JOIN-Funktionen inner_join, left_join, right_join, full_join in meinem Tutorial zum Package dplyr
LERNE DATA SCIENCE mit R
Ein Data Science Experte ist in der heutigen datengetriebenen Welt viel gefragt. Mit der entsprechenden Erfahrung kann man sich den gutbezahlten, interessanten Job aussuchen. In meinem Onlinekurs Data Science mit R lernst Du die Grundlagen.