我编写了一个函数来重塑日志文件(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)