Como salvar um data.frame no R?

137

Criei um data.frame em R que não é muito grande, mas leva algum tempo para ser construído. Gostaria de salvá-lo como um arquivo, que posso abrir novamente no R?

Borut Flis
fonte

Respostas:

176

Existem várias maneiras. Uma maneira é usar save()para salvar o objeto exato. por exemplo, para o quadro de dados foo:

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

Em seguida, carregue-o com:

load("data.Rda")

Você também pode usar write.table()ou algo parecido para salvar a tabela em texto simples ou dput()obter o código R para reproduzir a tabela.

Sacha Epskamp
fonte
2
Também existem dumparquivos criados source(), mas a help(dump)página diz que saveé "mais segura".
IRTFM 01/12/11
4
Eu sempre prefiro armazenar dados em texto puro, então eu prefiro dump()mais save()e write.table()maisdump()
Sacha Epskamp
Estou correto que write.table não preservará coisas como configurar uma coluna de 0 e 1 como fator, mas isso save()/ load()irá? Nesse caso, isso também deve ser levado em consideração. Normalmente, tenho uma seção de processamento de alguns arquivos .csv e, quando os recebo onde gosto, prefiro salvá-los, para não precisar executar novamente esse código toda vez que visito meu projeto. Portanto, é importante considerar a preservação desse trabalho / ajustes na estrutura.
Hendy
4
Sim. dump()também salva a estrutura. O bom write.tableé que ele escreve tabelas de uma maneira que muitos softwares podem importar.
Sacha Epskamp
2
Isso economiza mais do que apenas o quadro de dados. Veja saveRDSpara salvar um quadro de dados sem o nome (dhendrickson tem uma resposta).
PatrickT
91

Se você estiver salvando apenas um único objeto (seu quadro de dados), também poderá usar saveRDS.
Salvar:

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

Em seguida, leia-o com:

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

A diferença entre saveRDSe saveé que, no primeiro, apenas um objeto pode ser salvo e o nome do objeto não é forçado a ser o mesmo depois que você o carrega.

dhendrickson
fonte
1

Digamos que você tenha um quadro de dados criado e denominado "Data_output", você pode simplesmente exportá-lo para o mesmo diretório usando a seguinte sintaxe.

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

crédito a Peter e Ilja, UMCG, Holanda

Nigus Asefa
fonte