Bagaimana cara menyimpan data.frame di R?

140

Saya membuat data.frame di R yang tidak terlalu besar, tetapi perlu waktu cukup lama untuk membuatnya. Saya akan menyimpannya sebagai file, yang dapat saya buka lagi di R?

Borut Flis
sumber

Jawaban:

181

Ada beberapa cara. Salah satu cara adalah menggunakan save()untuk menyimpan objek yang tepat. misalnya untuk bingkai data foo:

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

Kemudian muat dengan:

load("data.Rda")

Anda juga bisa menggunakan write.table()atau sesuatu seperti itu untuk menyimpan tabel dalam teks biasa, atau dput()untuk mendapatkan kode R untuk mereproduksi tabel.

Sacha Epskamp
sumber
2
Ada juga dumpdan file-file yang dibuat akan diberi nama source(), meskipun help(dump)halaman tersebut mengatakan save"lebih aman".
IRTFM
4
Aku selalu lebih suka menyimpan data dalam teks biasa, jadi saya lebih memilih dump()lebih save(), dan write.table()lebihdump()
Sacha Epskamp
Apakah saya benar bahwa write.table tidak akan mempertahankan hal-hal seperti menyiapkan kolom 0 dan 1 sebagai faktor, tetapi itu save()/ load()akan? Jika demikian, itu juga perlu dipertimbangkan. Saya biasanya memiliki bagian pemrosesan beberapa file .csv dan setelah saya mendapatkannya di tempat yang saya suka, saya lebih suka menyimpannya sehingga saya tidak perlu menjalankan ulang kode itu setiap kali saya mengunjungi kembali proyek saya. Jadi, menjaga pekerjaan / penyesuaian pada struktur itu penting untuk dipertimbangkan.
Hendy
4
Iya. dump()juga menghemat struktur. Hal yang menyenangkan write.tableadalah ia menulis tabel dengan cara yang dapat diimpor oleh banyak perangkat lunak.
Sacha Epskamp
2
Ini menghemat lebih dari sekedar dataframe. Lihat saveRDSuntuk menyimpan dataframe tanpa namanya (dhendrickson punya jawabannya).
PatrickT
94

Jika Anda hanya menyimpan satu objek (bingkai data Anda), Anda juga bisa menggunakan saveRDS.
Untuk menyimpan:

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

Kemudian bacalah dengan:

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

Perbedaan antara saveRDSdan saveadalah bahwa pada yang sebelumnya hanya satu objek yang dapat disimpan dan nama objek tidak dipaksa untuk menjadi sama setelah Anda memuatnya.

dhendrickson.dll
sumber
1

Katakanlah Anda memiliki bingkai data yang Anda buat dan dinamai "Data_output", Anda cukup mengekspornya ke direktori yang sama dengan menggunakan sintaks berikut.

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

kredit untuk Peter dan Ilja, UMCG, Belanda

Nigus Asefa
sumber