[R] Rprof causing R to crash

Uwe Ligges ligges at statistik.tu-dortmund.de
Wed Dec 12 17:06:13 CET 2012



On 12.12.2012 00:05, Marian Talbert wrote:
> I'm trying to use Rprof() to identify bottlenecks and speed up a particullary
> slow section of code which reads in a portion of a tif file and compares
> each of the values to values of predictors used for model fitting.  I've
> written up an example that anyone can run.  Generally temp would be a
> section of a tif read into a data.frame and used later for other processing.
> The first portion which just records the time works in about 6 seconds the
> second part causes RGui to immediately close with no error or warning.  Any
> advice on how to get Rprof to work or how to speed up this code would be
> greatly appreciated.  I'm using Windows 7 (which might be my problem) and R
> version 2.15.0.

The problem is rather the R version: I cannot reproduce errors with a 
recent R.

Uwe Ligges


>
> CalcMESS<-function(tiff.entry,pred.vect){
>                f<-sum(pred.vect<tiff.entry)/length(pred.vect)*100
>                if(is.na(f)) return(NA)
>                if(f==0)
> return((tiff.entry-min(pred.vect))/(max(pred.vect)-min(pred.vect))*100)
>                if(0<f & f<=50) return(2*f)
>                if(50<=f & f<100) return(2*(100-f))
>                if(f==100)
> return((max(pred.vect)-tiff.entry)/(max(pred.vect)-min(pred.vect))*100)
>                else return(NA)
> }
>
> train.dat <- data.frame(a=runif(200),b=runif(200),c=runif(200),d=runif(200))
> temp <-
> data.frame(a=runif(130000),b=runif(130000),c=runif(130000),d=runif(130000))
> pred.rng<-temp
> vnames.final.mod <- names(train.dat)
> nvars.final <- length(vnames.final.mod)
>
> start.time<-Sys.time()
>               for(k in 1:nvars.final){
>
> pred.range<-train.dat[,match(vnames.final.mod[k],names(train.dat))]
>
> pred.rng[,k]<-mapply(CalcMESS,tiff.entry=temp[,match(vnames.final.mod[k],names(temp))],MoreArgs=list(pred.vect=pred.range))
>                           }
> Sys.time()-start.time
>
>
> Rprof("C:\\temp\\mapply.out")
>               for(k in 1:nvars.final){
>
> pred.range<-train.dat[,match(vnames.final.mod[k],names(train.dat))]
>
> pred.rng[,k]<-mapply(CalcMESS,tiff.entry=temp[,match(vnames.final.mod[k],names(temp))],MoreArgs=list(pred.vect=pred.range))
>                           }
> Rprof(NULL)
>
>
>
> --
> View this message in context: http://r.789695.n4.nabble.com/Rprof-causing-R-to-crash-tp4652846.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>




More information about the R-help mailing list