gepuro.net
gepulog

データ分析エンジニアによる備忘録的ブログ

RでCSVファイルを一行ずつ読み込む

メモリを節約するんじゃ

学習データはサンプリングするからメモリに載せられるけど、 予測対象はメモリに乗らない時に一行ずつ読み込んで処理をさせたい。

f <- file("data.csv", "r")
while(1){
  line <- readLines(f, n=1)
  if(length(line) == 0){
    break
  }else{
    line.f <- textConnection(line)
    line.df <- read.csv(line.f, header = FALSE, sep=",")
  }
  write.table(line.df, stdout(), row.names=F, col.names=F, sep=",")
}

標準入力から受け取る時は、

file("data.csv", "r")

file("stdin")

にすれば良さそう

参考

追記

奥村先生版です。

追記2

hoxo_mさんバージョンです。 勝手に添削:RでCSVファイルを一行ずつ読み込む #rstatsj


似てる記事

似てない記事