Как сохранить 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.