Как сохранить 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, и как только я получаю их там, где они мне нравятся, я предпочитаю сохранять их, чтобы мне не приходилось перезапускать этот код каждый раз, когда я снова посещаю свой проект. Таким образом, сохранение этой работы / настроек структуры важно учитывать.
— Hendy

4
Да. dump()также сохраняет структуру. Приятно то, write.tableчто он записывает таблицы так, как многие программы могут импортировать.
— Саша Эпскамп

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, quote = F)

кредит Петру и Илье, UMCG, Нидерланды

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.