La pregunta simple Tenemos dos marcos de datos diferentes con una configuración similar a la salida de DF_1 y DF_2

DF_1 = as.data.frame(matrix(c(1,2,3,4,20,55,12,44),nrow=4,ncol=2))
DF_2 = as.data.frame(matrix(c(1,2,3,4,33,32,21,44,66,71),nrow=2,ncol=5))

¿Cómo se fusiona DF_1 y DF_2 para crear un marco de datos combinado?

combined_DF = as.data.frame(matrix(c(1,2,1,2,20,55,12,44,3,4,3,4,33,32,33,32,21,44,21,44,66,71,66,71),nrow=4,ncol=6))

¿Cuál sería una forma rápida, que crea el mismo resultado que combinado_DF?

La pregunta más difícil En realidad, los dos marcos de datos que deben fusionarse son mucho más grandes, de hecho

DF1 es 156798 obs. de 9 variables

DF2 es 6441 obs. de 92 variables

Ahora, ¿cómo se fusiona DF_1 y DF_2 para crear un marco de datos combinado? Llámelo combine_DF que tiene 156798 obs. de 99 variables? (igual que el principio de la pregunta simple, pero esta vez con marcos de datos mucho más grandes) ¿Se puede usar doMC :: registerDoMC para acelerar este proceso.

Respuestas es muy apreciada :)

-2
Mr_Holm 11 may. 2017 a las 15:33

2 respuestas

La mejor respuesta

A través de la base R,

 cbind(V6 = DF_1$V2, DF_2[rep(rownames(DF_2), nrow(DF_1) - nrow(DF_2)),])

#    V6 V1 V2 V3 V4 V5
#1   20  1  3 33 21 66
#2   55  2  4 32 44 71
#1.1 12  1  3 33 21 66
#2.1 44  2  4 32 44 71
0
Sotos 11 may. 2017 a las 12:46

No 100% de lo que estás preguntando. O simplemente desea poner la tabla de lado a lado, en la que hay un enlace de columna, o una debajo de la otra que es un enlace de fila, o está tratando de unir las tablas que es una unión ... ¿Podría aclarar un poco ¿más? No entiendo tu ejemplo reproducible.

A través de dplyr

library(dplyr)
combined_DF <- bind_cols(DF_1, DF_2)

O

combined_DF <- bind_rows(DF_1, DF_2)

O

combined_DF <- left_join(DF_1, DF_2)
0
Matt W. 11 may. 2017 a las 18:57