bigmemoryパッケージのscan()とread.big.matrix()を組み合わせて200 MBの.csvファイルを読み込む方法はありますか混合型の列を持つファイルで、整数、文字、数値の列を持つデータフレームが得られるでしょうか?bigmemoryパッケージを使用して混合型カラムを使用して大きなcsvファイルをロードする方法
答えて
ヘルプファイルによると、
ファイルには、1つのアトミックタイプ(すべての整数など)が含まれている必要があります。 ユーザーは、ファイルに行および/または列の名前があるかどうかを知る必要があります。 で目的の動作を取得するには、さまざまなオプションの組み合わせが役立ちます。
私はこのパッケージ/関数に慣れていませんが、Rでは、行列は原子タイプを1つしか持てません(data.framesとは異なります)。
あなたの2セントをありがとう。このブログでは、http://joshpaulson.wordpress.com/2010/12/20/michael-kane-on-bigmemory/誰かが、1つのアトミックタイプしか持たないマトリックスの制限についての回避策を提案しました。行列)は、scan()を使用することです。私は、誰かがbigmemoryパッケージからread.big.matrixを使って自分の経験を共有できることを望んでいました。特に、混合型の列の読み込みやscan()の使用の有無に関することでした。 – Lourdes
おそらく処理段階でそれを行うことができますが、間違っていることを証明したいと思います(sensu @Iterator)。 –
このためにffパッケージをお試しください。
library(ff)
help(read.table.ffdf)
関数「read.table.ffdf」「read.tableを」「FFDF」 非常に多くのようなオブジェクト(および使用)に分かれフラットファイルを読み取ります。また、 は 'read.csv'のような便利なラッパーで動作し、Rの通常の ラッパーのための 独自の便利ラッパー(例: 'read.csv.ffdf')を提供します。
これは、このような単純な作業でなければなりません。
x <- read.csv.ffdf(file=csvfile)
(はるかに大きいファイルの場合、それはおそらくあなたがあなたのマシンやOSに応じて、設定オプションのいくつかを調査することが必要になります)。
ああ、この人生では不可能なことがいくつかあります。誤解されて不快な状況につながるものがあります。 @Romanは正しい:マトリックスは1つの原子タイプでなければならない。それはデータフレームではありません。
マトリックスは1つのタイプでなければならないので、bigmemory
をスヌーカーで試してみると、複数のタイプを処理すること自体が悪いことです。それはできますか?私はそこに行くつもりはない。どうして?それ以外のものは、データフレームではなく行列を取得しているとみなされるからです。それはより多くの疑問と悲しみにつながります。
ここで、各列の種類を識別し、それぞれが特定の種類の項目を含む異なるビッグメモリファイルのセットを生成することができます。例えば。 charBM =文字ビッグ行列、intBM =整数ビッグ行列など。そして、この中からデータフレームを生成するラッパーを開発することができます。それでも、私はそれを推奨しません:あなたができるならば、大きなデータフレームグリフィンを作り出そうとするよりも、異なるアイテムをそのまま扱うか、同質性を強要してください。
@mdsumnerは、ff
を示唆しています。もう1つのストレージオプションはHDF5で、Rのncdf4
からアクセスできます。残念ながら、他のパッケージはbigmemory
ほど快適ではありません。
Thanks Iterator。あなたは正しい、他のパッケージはbigmemoryほど楽しいものではない。 – Lourdes
最適な解決策は、ファイルを1行ずつ読み込んで解析することです。このようにして、読み取りプロセスはほぼ直線的な量のメモリを占有します。
ようこそStackOverflow!しかし、これは質問に答えるものではありません。これは具体的にはビッグメモリパッケージ –
- 1. phpMyAdminを使用して大きなcsvファイルをインポートします。
- 2. スクリプトを使用して.csvファイルをMySQLデータベースにロードする
- 3. 使用可能な変数としてPHPを使用してmysqlカラムの合計を取得する方法
- 4. CSVファイルに対してSQLを使用する方法
- 5. WCFを使用して大きなファイルを転送する方法
- 6. Xcode 4を使用して大きなxibファイルをリファクタリングする方法は?
- 7. JAXB Marshallerを使用して大きなファイルをストリーミングする方法は?
- 8. ksop2を使用して大きなファイルをWebサービスに送信する方法
- 9. .INF設定ファイルを使用してOCXをロードする方法
- 10. mvnパッケージを使用して.propertiesファイルにパラメータを渡す方法
- 11. ExtJSクライアントサイドを使用してCSVファイルをアップロードして処理する方法
- 12. iOSを使用してCSVファイルを読む方法
- 13. HTTP/POSTを使用して大きなファイルを転送する
- 14. WCFでストリーミングモードを使用して大きなファイルをアップロードする
- 15. ExcelファイルをループしてSSISパッケージを使用してデータベースにロードする方法は?
- 16. CSVクラスを使用してRubyで.csvファイルを解析する
- 17. FileSystemObjectを使用してcsvファイルを読み書きする
- 18. 大規模なCSVファイルをウェブサイトの入力として使用する
- 19. BufferedOutputStreamを使用して大きなファイルを書き込む
- 20. Internet ExplorerでServletOutputStreamを使用してServletOutputStreamを使用してCSVファイルを返す
- 21. EPSファイルをロードしてWinFormsを使用して描画する方法
- 22. .csvファイルを使用する場合、OLEDBはどのように混合データ型を扱うのですか?
- 23. msdeployを使用した大きなファイル
- 24. ALSAを使用して複数のPCMストリームを混合する方法
- 25. xmltextreaderを使用して単純なxmlファイルからハッシュテーブルをロードする方法
- 26. ChromeパッケージのXHRを使用してローカルコンテンツをロードする
- 27. nodejsを使用して大きなファイルをアップロード
- 28. SQLalchemyを使用して大きなファイルを読む
- 29. JAZAを使用してAESで大きなファイルを暗号化
- 30. Javaを使用してCSVファイルをXMLファイルに変換する
bigememoryパッケージである必要がありますか?私はffがこの種のものにはるかに役立つことを発見しました – mdsumner
@mdsumnerは正しい軌道にあります。ファイルをバックアップする必要がありますか? 200MBの場合は、読み込んで作業してから、1つ以上のBMファイルとして保存してください(または望むなら 'ff')。 – Iterator