2016-05-29 17 views
0

Vignette for bigmemoryと同様の方法でR biganalyticsパッケージからread.big.matrixを使用して689.4 MBのCSVにロードしようとしています。R bigmemoryは大きなCSVファイルを読み取らない

ビネットコード:42-からのコメントパー

library(bigmemory) 
library(biganalytics) 
x <- read.big.matrix("airline.csv", type="integer", header=TRUE, 
     backingfile="airline.bin", 
     descriptorfile="airline.desc", 
     extraCols="Age") 

、私は、コマンドラインcut -d, -f9,11,17,18,23 --complement 2008.csv > 2008cut.csv

上のカットを使用して、因子変数を削除私は、使用したデータで見つかったNA値のいずれかを削除sed sed -i 's/NA/0/g' 2008cut.csvこれらの前処理ステップでも、私は同じエラーを受け取ります。

マイコード:

#This works 
x <- read.csv("~/Downloads/2008cut.csv",header=T) 
dim(y) 
#[1] 7009728  29 
length(complete.cases(x)) 
#[1] 7009728 

library(bigmemory) 
library(biganalytics) 
#This errors out 
data <- read.big.matrix("~/Downloads/2008cut.csv", 
      type="integer", header=TRUE) 

read.big.matrixを実行しようとしたとき、私は次のエラーが表示されます

Warning: stack imbalance in '.Call', 31 then 32 
Warning: stack imbalance in '{', 28 then 29 
Warning: stack imbalance in '-', 23 then 24 
Warning: stack imbalance in '-', 22 then 23 
Warning: stack imbalance in '<-', 20 then 21 
Error in big.matrix(nrow = numRows, ncol = createCols, type = type, 
dimnames = list(rowNames, : 
    A big.matrix must have at least one row and one column 

私はこの問題を持つ人を見つけたが、それらはmixed dataまたはsimilar problemを持っていました応答はありません。私の検索のある時点で、メーリングリストの誰かが、bigememoryが一般的に働いていることを確認するために、x <- big.matrix(nrow=1000,ncol=10)のようなものを実行できるかどうかを尋ねました。 I で、そのコードを実行してbig.matrixを生成することができます。

ご指摘いただければ幸いです!

ソフトウェア詳細:

  • データ:2008 File
  • R:3.2.3
  • OS:x86_64版-pc-linux-gnuのよう
  • bigmemory:4.5.19
  • biganalytics:1.1 .14
+0

あなたの問題はメモリの制限の問題か、単に '.csv'ファイルの読み込み速度を向上させようとしていますか? –

+0

リンクされたページのファイル構造のドキュメントは、そのファイルの "整数"の選択が成功しないことを示唆しています。いくつかの列は明らかに整数ではありません。 –

+0

@RafaelPereira私はbigmemoryライブラリとそのアプリケーションをよりよく理解しようとしています。私はファイルがメモリに収まるように32GBのRAMで作業していますが、bigmemoryフレームワークの下でデータを調べたいと思っています。 @ 42-良い点。私はもともとこれをアマゾンファイルで試しました。 'cut -d、-f9,11,17,18,23 --compat 2008.csv> 2008cut.csv'を使って要素変数を削除した後でも、私は同じエラーを受け取りました: - \ –

答えて

1

大きなファイルを読む場合は、R data.tableパッケージからの。

+0

これは質問に対処しませんか? –

+1

結果テーブルは、biglmのようなツールで動作しますが、bigkmeansでは動作しません。 freadはファイル全体をメモリに読み込みますが、bigmemoryはポインタをメモリに格納します。 –

関連する問題