Як зберегти data.frame в R?


137

Я зробив data.frame в R, який не дуже великий, але для його побудови потрібно досить багато часу. Я хотів би зберегти його як файл, який я можу знову відкрити в R?

Відповіді:


176

Існує кілька способів. Один із способів - використовувати save()для збереження точного об’єкта. наприклад для кадру даних foo:

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

Потім завантажте його:

load("data.Rda")

Ви також можете використати write.table()щось подібне, щоб зберегти таблицю в простому тексті або dput()отримати код R для відтворення таблиці.


2
Існує також dumpі створені файли були б source()-ed, хоча на help(dump)сторінці написано save"безпечніше".
— IRTFM

4
Я завжди вважаю за краще зберігати дані в простому тексті, тому я віддаю перевагу dump()більше save()і write.table()більшеdump()
— Sacha Epskamp

Я правда, що write.table не збереже такі речі, як встановлення стовпця 0 і 1 як фактор, але це save()/ load()буде? Якщо так, то це теж слід враховувати. У мене зазвичай є розділ обробки деяких файлів .csv, і як тільки я отримую їх там, де вони мені подобаються, я вважаю за краще зберігати їх, тому мені не доведеться повторно запускати цей код кожен раз, коли я повторно відвідую свій проект. Отже, важливо враховувати, що робота / підключення до структури.
— Хенді

4
Так. dump()також зберігає структуру. Приємно в тому write.table, що він пише таблиці таким чином, що багато програмне забезпечення може імпортувати.
— Sacha Epskamp

2
Це економить більше, ніж просто кадр даних. Дивіться, saveRDSщоб зберегти кадр даних без його імені (dhendrickson має відповідь на це).
— PatrickT

91

Якщо ви зберігаєте лише один об'єкт (ваш кадр даних), ви також можете використовувати його saveRDS.
Зберегти:

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

Потім прочитайте його за допомогою:

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

Різниця між saveRDSі saveполягає в тому, що в колишньому можна зберегти лише один об’єкт, а ім'я об'єкта не змушене бути однаковим після його завантаження.


1

Скажімо, у вас створений кадр даних, який ви створили та назвали "Data_output", ви можете просто експортувати його в той самий каталог, використовуючи наступний синтаксис.

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

кредит Петру та Іллі, UMCG, Нідерланди

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.