統計分析用のデータをRに単純に保存する最良の方法[非公開]


12

テキストファイルを使用して、しばらくの間、問題なくRのデータを保存しています。しかし、最近のプロジェクトでは、生のテキストファイルを処理するにはファイルのサイズが大きくなりすぎています。最も簡単な代替手段は何ですか?


5
テキストファイルはどのように大きくなりすぎていますか?あなたは彼らの誠実さを恐れていますか?他のソフトウェアでそれらを開くことができませんか?ロードするには遅すぎますか?ハードドライブには大きすぎますか(ラップトップ?)
ガラ

3
+1プロジェクトの成長に合わせてデータを管理することは、データ分析の普遍的な問題です(特定の問題ではありませんR)。基本的な関心事は、ファイルサイズではなくデータの整合性です。何らかの形式の圧縮を提案することは、解決するのではなく、単にこれを曖昧にするだけです。
whuber

特定のサイズ以上のtxtは機能しないようです。追加のデータをtxtファイルに追加してRにロードできますが、追加のデータはRにはありません(ただし、データはかなり豊富であるため、圧縮は少し役立つかもしれませんが、私はそこまで行かないでしょう。 。私のプロジェクト私は再び同じ問題になってしまいます成長する)として疑わしい
玩具モルト

データについて詳しく説明する必要があります。「あらゆる種類のデータに最適な方法」などというものはありません。
zx8754

あなたはそれを意味するのですread.tableか、それともread.csv黙って失敗していますか?いくつかのファイルが横たわっていないか、コーディングエラー(パスが間違っている、ファイル名が間違っているなど)がないことを絶対に確信していますか?アイデアを修正するためだけに、おおよその変数とレコードの数についても教えてください。
ガラ

回答:


10

標準Rのアプローチは、使用することですsaveloadsaveインポートして注釈を付けた後、データフレームで実行する場合、指定することができcompress=TRUE、圧縮と高速load時間に驚かれることでしょう。これは、オブジェクトサイズが約400MB未満の場合に特に有効です。それ以外の場合は、上記の提案のいくつか、またはffRの強力なパッケージを確認してください。

Hmiscパッケージには、少しラッパーを持っているSaveと、Load上記のさらに多くの無痛を作るために:

mydata <- csv.get(...)  # Hmisc package, has several options
Save(mydata)   # writes mydata.rda to current working directory
....
Load(mydata)   # reads mydata.rda and creates mydata data frame

9

SQLite3データベースを見てください。各データベースはファイルであるため、データベースサーバーをセットアップする必要はありません。

データベースを作成するには:

$ sqlite3 my_db.db3
> CREATE TABLE my_table ( col1 TEXT );

Rで使用する場合、https://gist.github.com/lynaghk/1062939


+1実際のデータベースを使用することは、正しい方向への大きな一歩です。
whuber

これは適切なツールでしょうか?cran.r-project.org/web/packages/RSQLite/index.html
EngrStudent-モニカの

おかげで、このルートを試してみます。私もMySQLを調べましたが、必要以上のものであるようです。
おもちゃモルト

4

一般的なオプションがいくつかあります。

  • テキストを圧縮できます。
  • あなたはASCIIで書くのではなく、テキストにバイナリを入れることができます

優れた圧縮はデータに依存します。

私の推測(そして、あなたが指定しなかったので推測しなければならない)は、csv(コンマ区切り)以外のスプレッドシートのようなデータを保存しようとしているということです。

私のお気に入りのフォーマットの1つ(MatLabが大好き)はhdfです。

HDFに関するR関連の情報は次のとおりです。

これは、高密度のスーパーコンピューティングデータストレージ形式です。非常に高速で効率的です。また、(当然のことながら)圧縮されたテキストよりも密度が高くなります。


3

Rの標準ファイル読み取り機能は、gzip圧縮されたファイルを自動的に簡単に読み取るようになりました。したがって、データに対して単純なgzip圧縮を実行し、プレーンテキストであるかのように常に読み取ります。

read.table('myfile.gz')

きちんとした!知らなかったよ。ありがとうございました。
EngrStudent-モニカの復活14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.