Fusionar marcos de datos y sobrescribir valores

¿Cómo fusiono 2 marcos de datos similares pero tengo uno con mayor importancia?

Por ejemplo:

Dataframe 1

Date      Col1    Col2
jan         2      1
feb         4      2
march       6      3
april       8      NA

Marco de datos 2

Date      Col2    Col3
jan         9      10
feb         8      20
march       7      30
april       6      40

fusione estos por fecha con el marco de datos 1 teniendo prioridad pero el marco de datos 2 rellena los espacios en blanco

DataframeMerge

Date      Col1    Col2    Col3
jan         2       1      10
feb         4       2      20
march       6       3      30
april       8       6      40

EDITAR - SOLUCIÓN

commonNames <- names(df1)[which(colnames(df1) %in% colnames(df2))]
commonNames <- commonNames[commonNames != "key"]
dfmerge<- merge(df1,df2,by="key",all=T)
for(i in commonNames){
  left <- paste(i, ".x", sep="")
  right <- paste(i, ".y", sep="")
  dfmerge[is.na(dfmerge[left]),left] <- dfmerge[is.na(dfmerge[left]),right]
  dfmerge[right]<- NULL
  colnames(dfmerge)[colnames(dfmerge) == left] <- i
}

Respuestas a la pregunta(4)

Su respuesta a la pregunta