テキストファイルからRに〜5x10 ^ 6の数値を読み取るのは、私のマシンでは比較的遅くなります(数秒、そのようなファイルをいくつか読み取ります)scan(..., what="numeric", nmax=5000)
。この種のタスクのラッパーを試す価値はありますかRcpp
(たとえばArmadillo
、テキストファイルを読み取るためのユーティリティがいくつかあります)?または、予想されるインターフェイスオーバーヘッドのために、パフォーマンスがほとんどまたはまったく向上しないために時間を無駄にしている可能性がありますか?現在、速度を制限しているのは何か(固有のマシンパフォーマンスなど)はわかりません。これは、通常、1日に何度も繰り返すタスクであり、ファイル形式は常に同じで、1000列、約5000行です。
必要に応じて、試してみるサンプルファイルを次に示します。
nr <- 5000
nc <- 1000
m <- matrix(round(rnorm(nr*nc),3),nr=nr)
cat(m[1, -1], "\n", file = "test.txt") # first line is shorter
write.table(m[-1, ], file = "test.txt", append=TRUE,
row.names = FALSE, col.names = FALSE)
更新:Armadilloを試しread.csv.sql
てみましたが、どちらもソリューションよりも低速でした。load("test.txt", arma::raw_ascii)
scan