объединение в R приводит к большему количеству строк, чем один из фреймов данных

У меня есть два фрейма данных, первый содержит 9994 строк, а второй содержит 60431 строк. Я хочу объединить два фрейма данных так, чтобы объединенный фрейм данных содержал объединенные столбцы обоих фреймов данных, но содержал только 9994 строки.

Тем не менее, я получаю более 9994 строк после слияния. Как я могу убедиться, что этого не произойдет?

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

РЕДАКТИРОВАТЬ: После комментария Акрун. Да, во втором фрейме данных были дубликаты

nrow(unique(df2[,c("col1","col2")]))
# [1] 60263
nrow(df2)
# [1] 60431

Как я могу взять только одну строку из фрейма данных, если их несколько для одной комбинации {col1, col2}. Когда я объединяюсь, я хотел бы иметь только 9994 строки.