Fusionando un montón de data.frames

Posible duplicado:
Fusionar marcos de datos múltiples en una lista simultáneamente

ejemplo data.frames :

  df1 = data.frame(id=c('1','73','2','10','43'),v1=c(1,2,3,4,5)) 
df2 = data.frame(id=c('7','23','57','2','62','96'),v2=c(1,2,3,4,5,6))
df3 = data.frame(id=c('23','62'),v3=c(1,2))

Nota: id es único para cada data.frame. Quiero que la matriz resultante se vea como

 1 1 NA NA 2 3 4 NA 7 NA 1 NA 10 4 NA NA 23 NA 2 1 43 5 NA NA 57 NA 3 NA 62 NA 5 2 73 2 NA NA 96 NA 6 NA 

En este caso, solo muestro 3 conjuntos de datos, de hecho tengo al menos 22 de ellos, así que al final quiero una matriz de nx (22 + 1) donde n es el número de identificadores para los 22 conjuntos de datos.

Dado 2 conjuntos de datos, necesito obtener sus ids en la primera columna y las columnas segunda y tercera están llenas con los valores, si no existe ningún valor, entonces ingrese NA lugar.

Ponlos en una list y usa merge con Reduce

 Reduce(function(x, y) merge(x, y, all=TRUE), list(df1, df2, df3)) # id v1 v2 v3 # 1 1 1 NA NA # 2 10 4 NA NA # 3 2 3 4 NA # 4 43 5 NA NA # 5 73 2 NA NA # 6 23 NA 2 1 # 7 57 NA 3 NA # 8 62 NA 5 2 # 9 7 NA 1 NA # 10 96 NA 6 NA 

También puedes usar esta versión más concisa:

 Reduce(function(...) merge(..., all=TRUE), list(df1, df2, df3))