CSV
ファイルの 1 列をR
できるだけ早く読み込もうとしています。列を RAM に入れるのにかかる時間を 10 分の 1 にするという点で、標準的な方法を削減したいと考えています。
私の動機は何ですか?2 つのファイルがあります。1 つMain.csv
は 300000 行 500 列、もう 1 つSecond.csv
は 300000 行 5 列です。system.time()
コマンドの場合read.csv("Second.csv")
、2.2 秒かかります。以下の 2 つの方法のいずれかを使用して の最初の列Main.csv
(5 列ではなく 1 列であるため、20% のサイズ)を読み取るSecond.csv
と、40 秒以上かかります。これは、600 メガバイトのファイル全体を読み取るのにかかる時間と同じです。明らかに受け入れられません。
方法 1
colClasses <- rep('NULL',500) colClasses[1] <- NA system.time( read.csv("Main.csv",colClasses=colClasses) ) # 40+ seconds, unacceptable
方法 2
read.table(pipe("cut -f1 Main.csv")) #40+ seconds, unacceptable
この時間を短縮するには?私はR
解決策を望んでいます。