¿Cómo guardar un data.frame en R?

137

Hice un data.frame en R que no es muy grande, pero lleva bastante tiempo construirlo. Me gustaría guardarlo como un archivo, que puedo abrir de nuevo en R?

Borut Flis
fuente

Respuestas:

176

Hay varias formas Una forma es usar save()para guardar el objeto exacto. Por ejemplo, para el marco de datos foo:

save(foo,file="data.Rda")

Luego cárguelo con:

load("data.Rda")

También podría usar write.table()o algo así para guardar la tabla en texto plano, o dput()para obtener el código R para reproducir la tabla.

Sacha Epskamp
fuente
2
También existe dumpy los archivos creados serían source()editados, aunque la help(dump)página dice que savees "más seguro".
IRTFM
44
Siempre prefiero el almacenamiento de datos en texto plano, por lo que preferiría dump()más save(), y write.table()másdump()
Sacha Epskamp
¿Estoy en lo cierto de que write.table no conservará cosas como haber configurado una columna de 0 y 1 como factor, pero eso save()/ lo load()hará? Si es así, eso es algo a tener en cuenta también. Por lo general, tengo una sección de procesamiento de algunos archivos .csv y una vez que los obtengo donde me gustan, prefiero guardarlos para no tener que volver a ejecutar ese código cada vez que vuelvo a visitar mi proyecto. Por lo tanto, es importante considerar la preservación de ese trabajo / ajustes en la estructura.
Hendy
44
Si. dump()También guarda la estructura. Lo bueno de esto write.tablees que escribe tablas de una manera que muchos programas pueden importar.
Sacha Epskamp
2
Esto ahorra más que solo el marco de datos. Consulte saveRDSpara guardar un marco de datos sin su nombre (dhendrickson tiene una respuesta al respecto).
PatrickT
91

Si solo está guardando un solo objeto (su marco de datos), también podría usarlo saveRDS.
Ahorrar:

saveRDS(foo, file="data.Rda")

Luego léelo con:

bar <- readRDS(file="data.Rda")

La diferencia entre saveRDSy savees que en el primero solo se puede guardar un objeto y el nombre del objeto no está obligado a ser el mismo después de cargarlo.

dhendrickson
fuente
1

Supongamos que tiene un marco de datos que creó y denominado "Data_output", simplemente puede exportarlo al mismo directorio utilizando la siguiente sintaxis.

write.csv (Data_output, "output.csv", row.names = F, quote = F)

crédito a Peter e Ilja, UMCG, Países Bajos

Nigus Asefa
fuente