rownames - merge more than 2 data frames in r
Fusionando un montón de data.frames (1)
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))
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)) <br>
df2 = data.frame(id=c(''7'',''23'',''57'',''2'',''62'',''96''),v2=c(1,2,3,4,5,6)) <br>
df3 = data.frame(id=c(''23'',''62''),v3=c(1,2)) <br>
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.