Cuando se desea unir dos data frames sólo es necesario utilizar la función append o bien, emplear las funciones cbind y rbind según se requiera. El problema surge cuando queremos unir todos los data frames de una lista con los de otra lista.
Por ejemplo, pensemos que tenemos estas dos listas:
lista1 <- list(df1, df2)
lista2 <- list(df3, df4)
Si queremos generar una nueva lista con las columnas combinadas de los data frames de las dos listas sólo necesitamos hacer lo siguiente.
1. Supongamos que tenemos estas dos listas, la A y la B:
num = 10
A<-list()
B<-list()
for (j in 1:num){
A[[j]] <- as.data.frame(matrix(seq(1:9),3,3))
B[[j]] <- as.data.frame(matrix(seq(10:18),3,3))
}
combo1<-list()
for (i in 1:num){
combo1[[i]] <-rbind(A[[i]], B[[i]])
}
2. Ahora sólo necesitamos usar mapply con la función cbind (para unir columnas) o rbind (para unir renglones).## Make this a more _minimal_ reproducible example
A <- A[1:2]
B <- B[1:2]
## Override default attempt to reduce results to a vector, matrix, or other array
mapply("rbind", A, B, SIMPLIFY=FALSE)
# [[1]]
# V1 V2 V3
# 1 1 4 7
# 2 2 5 8
# 3 3 6 9
# 4 1 4 7
# 5 2 5 8
# 6 3 6 9
#
# [[2]]
# V1 V2 V3
# 1 1 4 7
# 2 2 5 8
# 3 3 6 9
# 4 1 4 7
# 5 2 5 8
# 6 3 6 9
Para más información sobre este código revisar: https://stackoverflow.com/questions/14329264/mapply-and-two-lists
No hay comentarios:
Publicar un comentario