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.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage