merge in R führt zu mehr Zeilen als einem der Datenrahmen
Ich habe zwei Datenrahmen, der erste enthält 9994 Zeilen und der zweite enthält 60431 Zeilen. Ich möchte die beiden Datenrahmen so zusammenführen, dass der zusammengeführte Datenrahmen kombinierte Spalten beider Datenrahmen enthält, jedoch nur 9994 Zeilen.
Ich erhalte jedoch beim Zusammenführen mehr als 9994 Zeilen. Wie kann ich sicherstellen, dass dies nicht passiert?
df1 = readRDS('data1.RDS')
nrow(df1)
# [1] 9994
df2 = readRDS('data2.RDS')
nrow(df2)
# [1] 60431
df = merge(df1,df2,by=c("col1","col2"))
nrow(df)
# [1] 10057
df = merge(df1,df2,by=c("col1","col2"),all.x=TRUE)
nrow(df)
# [1] 10057
nrow(na.omit(df))
# [1] 10057
EDIT: Nach akruns Kommentar. Ja, es gab Duplikate im zweiten Datenrahmen
nrow(unique(df2[,c("col1","col2")]))
# [1] 60263
nrow(df2)
# [1] 60431
Wie kann ich nur eine Zeile aus einem Datenrahmen entnehmen, wenn für dieselbe {col1, col2} -Kombination mehrere vorhanden sind? Beim Zusammenführen möchte ich nur 9994 Zeilen haben.