3倍早いファイル読み込み
Rのread.table(というかread.delimが好みだけど)は結構遅い。
大量のファイルを処理する必要があって、改良してみた。
単に数値データであることを指定してるだけだが、効果てきめん。
でも、3倍ってのは言い過ぎか。。。
> system.time(m1 <- scan.file("test.txt")) Read 100 items [1] 5.522 0.124 5.655 0.000 0.000 > system.time(m2 <- read.delim("test.txt")) [1] 10.495 0.138 10.606 0.000 0.000 > dim(m1) [1] 10000 100 > all(m1 == m2) [1] TRUE > scan.file function(file) { n <- length(scan(file, sep="\t", nlines=1, what="character")) res <- try( read.delim(file, header=T, colClasses=c("character", rep("double", n)))) if (class(res) != "try-error") { res } else { read.delim(file, header=T) } }