Combinar data.frames con duplicados

Tengo muchos data.frames, por ejemplo:

df1 = data.frame(names=c('a','b','c','c','d'),data1=c(1,2,3,4,5))
df2 = data.frame(names=c('a','e','e','c','c','d'),data2=c(1,2,3,4,5,6))
df3 = data.frame(names=c('c','e'),data3=c(1,2))

y necesito fusionar estos data.frames, sin eliminar el nombre duplicado

> result
  names data1 data2 data3
1  'a'    1    1      NA
2  'b'    2    NA     NA
3  'c'    3    4      1
4  'c'    4    5      NA
5  'd'    5    6      NA
6  'e'    NA   2      2       
7  'e'    NA   3      NA

No puedo encontrar la función como fusionar con la opción de manejar con duplicados de nombre. Gracias por tu ayuda. Para definir mi problema. Los datos provienen de experimentos biológicos en los que una muestra tiene un número diferente de réplicas. Necesito fusionar todos los experimentos, y necesito producir esta tabla. No puedo generar un identificador único para las réplicas.

Respuestas a la pregunta(6)

Su respuesta a la pregunta