Rでdata.frameを保存する方法は?


137

Rでそれほど大きくないdata.frameを作成しましたが、ビルドにかなり時間がかかります。それをファイルとして保存したいのですが、Rで再び開くことができますか?

回答:


176

いくつかの方法があります。1つの方法は、を使用save()して正確なオブジェクトを保存することです。たとえば、データフレームの場合foo

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

次に、それをロードします:

load("data.Rda")

write.table()またはを使用して、テーブルをプレーンテキストで保存したりdput()、Rコードを取得してテーブルを再現したりすることもできます。


2
またdump、作成されたファイルはsource()-ed されますが、help(dump)ページにsaveは「より安全」とあります。
IRTFM、2011

4
私はいつも私が好むので、プレーンテキストでデータを格納好むdump()オーバーsave()、およびwrite.table()オーバーdump()
サシャEpskamp

write.tableは因子として0と1の列を設定したようなものを保持しないことを私は修正しますが、それはsave()/ load()でしょうか?もしそうなら、それも考慮に入れるものです。通常、いくつかの.csvファイルを処理するセクションがあり、気に入った場所にそれらを取得したら、それらを保存して、プロジェクトに再度アクセスするたびにそのコードを再実行する必要がないようにします。したがって、構造への作業/微調整を維持することは、考慮することが重要です。
ヘンディ

4
はい。dump()構造も保存します。良い点write.tableは、多くのソフトウェアがインポートできる方法でテーブルを書き込むことです。
Sacha Epskamp 2013

2
これにより、データフレームだけが節約されるわけではありません。saveRDS名前なしでデータフレームを保存することを参照してください(dhendricksonはその答えを持っています)。
PatrickT

91

1つのオブジェクト(データフレーム)のみを保存する場合は、も使用できますsaveRDS
保存する:

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

それからそれを読んでください:

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

違いsaveRDSとは、saveかつて1つのオブジェクトのみに保存することができ、あなたがそれをロードした後、オブジェクトの名前が同じになるように強制されないということです。


1

作成して「Data_output」という名前のデータフレームがあるとしましょう。次の構文を使用して、それを同じディレクトリにエクスポートできます。

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

ピーターとイリヤ、UMCG、オランダの功績

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.