ver tabla presentacion nuevo new mapas mapa herramientas definicion data crear contenido como barra arcmap list r dataframe

list - presentacion - tabla contenido arcgis



¿Puedo combinar una lista de marcos de datos similares en un solo marco de datos? (4)

Posible duplicado:
Recombining una lista de Data.frames en un solo marco de datos.

Tengo un marco de datos:

foo <- list(df1 = data.frame(x=c(''a'', ''b'', ''c''),y = c(1,2,3)), df2 = data.frame(x=c(''d'', ''e'', ''f''),y = c(4,5,6)))

¿Puedo convertirlo en un solo marco de datos del formulario?

data.frame(x = c(''a'', ''b'', ''c'', ''d'', ''e'', ''f''), y= c(1,2,3,4,5,6))

?


¿Qué tal merge(foo[[1]], foo[[2]], all = TRUE)


Hay varios problemas con tu código.

El primero es que la declaración de asignación en la lista no funciona. Esto debe ser arreglado por, por ejemplo:

foo <- list( df1 = data.frame(x=c(''a'', ''b'', ''c''), y = c(1,2,3)), df2 = data.frame(x=c(''d'', ''e'', ''f''), y = c(4,5,6)) )

A continuación, puede usar rbind () para combinar los marcos de datos:

rbind(foo$df1, foo$df2) x y 1 a 1 2 b 2 3 c 3 4 d 4 5 e 5 6 f 6

Pero esto plantea más preguntas. Por ejemplo, ¿por qué combina los marcos de datos en una lista en primer lugar? El segundo es si realmente necesita usar marcos de datos en lugar de vectores. Finalmente, generalmente trato de evitar rbind () y más bien usar merge () al combinar marcos de datos de esta manera.


con plyr :

foo <- list(df1 = data.frame(x=c(''a'', ''b'', ''c''),y = c(1,2,3)), df2 = data.frame(x=c(''d'', ''e'', ''f''),y = c(4,5,6))) library(plyr) ldply(foo)[,-1] x y 1 a 1 2 b 2 3 c 3 4 d 4 5 e 5 6 f 6


do.call("rbind", foo) debería hacer el truco.