0

ログファイル (600Mb) を変形してデータフレームを取得する関数を作成しましたが、期待どおりの結果が得られませんでした。問題は、約 10Mb のログファイルを実行すると期待どおりの結果が得られることですが、ファイル全体を実行すると失敗しました。メモリ割り当てが原因のようです。

どうすれば修正できますか?

Reshape_data <-function(X) {
  n<-length(X[,1])
  Date<-vector(length=n)
  Time_Temp<-vector(length=n)
  status_Temp<-vector(length=n)
  m <- 0
  i <- 1
  while(is.na(X[i,]) == FALSE) { 
    if (substr(X[i,],1,1)!="#") {            
      m<-m+1
      Date[m]<-sapply((strsplit(as.character(X[i,])," ")), "[", 1) 
      Time_Temp[m]<-sapply((strsplit(as.character(X[i,])," ")), "[", 2) 
      status_Temp[m]<-sapply((strsplit(as.character(X[i,])," ")), "[", 11)
    }        
    i <- i+1
  }
  if(m>0){
    Time_Temp<-Time_Temp[1:m]
    status_Temp<-status_Temp[1:m]
  }else 
    {
      Time_Temp<-NULL 
      status_Temp<-NULL
    }
  mydf<-data.frame(Time_Temp,status_Temp)
  return(mydf)
}

AA_log<-read.table("ex130828.log",sep="\t",stringsAsFactors=FALSE,encoding="utf-8")
AA_Tidy<-Reshape_data(AA_log)
4

0 に答える 0