fusionar en R da como resultado más filas que uno de los marcos de datos

Tengo dos marcos de datos, el primero contiene 9994 filas y el segundo contiene 60431 filas. Quiero fusionar los dos marcos de datos de modo que el marco de datos combinado contenga columnas combinadas de ambos marcos de datos pero solo contenga 9994 filas.

Sin embargo, obtengo más de 9994 filas al fusionarme. ¿Cómo puedo asegurarme de que esto no suceda?

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

EDITAR: Siguiendo el comentario de akrun. Sí, había duplicados en el segundo marco de datos.

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

¿Cómo puedo tomar solo una fila de un marco de datos si hay múltiples para la misma combinación {col1, col2}? Cuando me fusiono, me gustaría tener solo 9994 filas.

Respuestas a la pregunta(1)

Su respuesta a la pregunta