Rのデータ読み込みはscan、read.tableなどなどがあるが、基本的に一気に読み込む。このため、でかいファイルを読み込むときなどに非常に困る。Rubyのように
file = File.open("test.txt", "r") file.each{|line| # do something }
というような処理ができない。例えば、csvファイルのようなもので、行についての平均を取りたい。しかし、すごいでかいファイルなので、一回行列にすると大変である。行ごとに読み込めれば、行列にする必要がない、という感じである。
ざーっとRの基本的な関数を見た感じだと、一行ごとに読み込むというような関数はなさそう。Rubyみたいな感じじゃなくてもいいので、例えば
scan("test.txt", f=function(x){ # do something })
のように無名関数を与えて処理のようなことができるとすごーーーくうれしいと思う。パッケージでそういうのあるのかなー?なければちょっとCとかで書いてやってみようと思う。たぶん、Rで大規模処理をしたいというときには必要になるだろうから。
というかTsukuba.R#5のときにid:sotarokに同じようなことができないか聞かれていた気がするw。