6

Rにインポートする450万行と90列のテキストファイルがあります。使用read.tableするとcannot allocate vector of size...エラーメッセージが表示されるため、データをサブセット化して興味のある観測を抽出する前にffパッケージを使用してインポートしようとしています(詳細については、前の質問を参照してください) :選択基準を read.table に追加します)。

したがって、次のコードを使用してインポートします。

test<-read.csv2.ffdf("FD_INDCVIZC_2010.txt", header=T)

しかし、これは次のエラーメッセージを返します:

Error in read.table.ffdf(FUN = "read.csv2", ...) : 
only ffdf objects can be used for appending (and skipping the first.row chunk)

私は何を間違っていますか?

テキスト ファイルの最初の 5 行を次に示します。

    CANTVILLE.NUMMI.AEMMR.AGED.AGER20.AGEREV.AGEREVQ.ANAI.ANEMR.APAF.ARM.ASCEN.BAIN.BATI.CATIRIS.CATL.CATPC.CHAU.CHFL.CHOS.CLIM.CMBL.COUPLE.CS1.CUIS.DEPT.DEROU.DIPL.DNAI.EAU.EGOUL.ELEC.EMPL.ETUD.GARL.HLML.ILETUD.ILT.IMMI.INAI.INATC.INFAM.INPER.INPERF.IPO ...
1             1601;1;8;052;54;051;050;1956;03;1;ZZZZZ;2;Z;Z;Z;1;0;Z;4;Z;Z;6;1;1;Z;16;Z;03;16;Z;Z;Z;21;2;2;2;Z;1;2;1;1;1;4;4;4,02306147485403;ZZZZZZZZZ;1;1;1;4;M;22;32;AZ;AZ;00;04;2;2;0;1;2;4;1;00;Z;54;2;ZZ;1;32;2;10;2;11;111;11;11;1;2;ZZZZZZ;1;2;1;4;41;2;Z
2             1601;1;8;012;14;011;010;1996;03;3;ZZZZZ;2;Z;Z;Z;1;0;Z;4;Z;Z;6;2;8;Z;16;Z;ZZ;16;Z;Z;Z;ZZ;1;2;2;2;Z;2;1;1;1;4;4;4,02306147485403;ZZZZZZZZZ;3;3;3;1;M;11;11;ZZ;ZZ;00;04;2;2;0;1;2;4;1;14;Z;54;2;ZZ;1;32;Z;10;2;23;230;11;11;Z;Z;ZZZZZZ;1;2;1;4;41;2;Z
3             1601;1;8;006;05;005;005;2002;03;3;ZZZZZ;2;Z;Z;Z;1;0;Z;4;Z;Z;6;2;8;Z;16;Z;ZZ;16;Z;Z;Z;ZZ;1;2;2;2;Z;2;1;1;1;4;4;4,02306147485403;ZZZZZZZZZ;3;3;3;1;M;11;11;ZZ;ZZ;00;04;2;2;0;1;2;4;1;14;Z;54;2;ZZ;1;32;Z;10;2;23;230;11;11;Z;Z;ZZZZZZ;1;2;1;4;41;2;Z
4            1601;1;8;047;54;046;045;1961;03;2;ZZZZZ;2;Z;Z;Z;1;0;Z;4;Z;Z;6;1;6;Z;16;Z;14;974;Z;Z;Z;16;2;2;2;Z;2;2;4;1;1;4;4;4,02306147485403;ZZZZZZZZZ;2;2;2;1;M;22;32;MN;GU;14;04;2;2;0;1;2;4;1;14;Z;54;2;ZZ;2;32;1;10;2;11;111;11;11;1;4;ZZZZZZ;1;2;1;4;41;2;Z
5             1601;2;9;053;54;052;050;1958;02;1;ZZZZZ;2;Z;Z;Z;1;0;Z;2;Z;Z;2;1;2;Z;16;Z;12;87;Z;Z;Z;22;2;1;2;Z;1;2;3;1;1;2;2;4,21707670353782;ZZZZZZZZZ;1;1;1;2;M;21;40;GZ;GU;00;07;0;0;0;0;0;2;1;00;Z;54;2;ZZ;1;30;2;10;3;11;111;ZZ;ZZ;1;1;ZZZZZZ;2;2;1;4;42;1;Z
4

4 に答える 4

9

csv を ff オブジェクトに読み込むことに関連する同様の問題が発生しました。ご利用にあたって

read.csv2.ffdf(file = "FD_INDCVIZC_2010.txt") 

暗黙の呼び出しの代わりに

read.csv2.ffdf("FD_INDCVIZC_2010.txt")

エラーを取り除きました。引数に値を明示的に渡すことは、関数に固有のようffです。

于 2014-05-05T07:55:26.547 に答える
4

次のコードを試すことができます。

read.csv2.ffdf("FD_INDCVIZC_2010.txt", 
           sep = "\t",
           VERBOSE = TRUE,
           first.rows = 100000,
           next.rows = 200000,
           header=T)

txtファイルなので、タブ区切りのファイルだと思います。

すみません、今質問に出くわしました。VERBOSE オプションを使用すると、データの各ブロックの読み取りにかかる時間を実際に確認できます。お役に立てれば。

于 2014-04-18T09:01:51.733 に答える
0

おそらく、次のコードを試すことができます。

read.table.ffdf(x = NULL, file = 'your/file/path', seq=';' )
于 2015-02-11T14:45:27.947 に答える