[R] memory error in for loop

Peter ptittmann at gmail.com
Sat Mar 6 04:08:43 CET 2010


hi,

I have been attempting to run this script and am getting some strange 
results. The script connects to a database and retrieves a series of 
tables, using sequential sql statements. I have tested all of the sql 
statements in the PostGreSQL terminal and they all return the desired 
results. I place each table into a list and run a FOR loop for 'i' in 
the list. The script generates the first map perfectly and begins to 
draw the second and then crashes in the middle of creating the second 
plot. I am suspicious that somehow i have a problem in my for loop that 
results in memory overload but I have been struggling to figure it out 
all day with no success. I have included below the for loop in the code 
and the beginning of the error message that is produced in the terminal. 
Any suggestions would be most welcome.

thanks in advance,

peter

script:

#create a list of results tables
matrixlist <- list(r_baseline, r_badlce, r_cblend, r_fedforest, r_ffv, 
r_hiencrop, r_loencrop, r_maxfeed) 
#par(mfcol= c(5,5))
for (i in matrixlist){
                                        
  ptable<-i[,-1]#create plot matrix w/o price point column

  ptable [is.na(ptable)] <- 0 #convert NA values to 0
                                
  maxval<-max(ptable) #create volume axis
  interval<-ceiling(maxval)/27
  mgy<- seq(0,ceiling(maxval), 
by=interval)                                     
  fprice <- c(i$price_point)#create price point axis
  #pdf(paste(i,"fuel_pw.pdf", sep=""), bg="white")
  matplot(ptable, fprice, type="l", col= rainbow(length(names(i))))
  #rm(i,ptable, fprice, maxval, interval, mgy)
  dev.off()
}

and the resulting error:

+   fprice <- c(i$price_point)#create price point axis
+   #pdf(paste(i,"fuel_pw.pdf", sep=""), bg="white")
+   matplot(ptable, fprice, type="l", col= rainbow(length(names(i))))
+   rm(i,ptable, fprice, maxval, interval, mgy)
+   dev.off()
+ }
matplot: doing 17 plots with  col= ("#FF0000FF" "#FF5500FF"
"#FFAA00FF" "#FFFF00FF" "#AAFF00FF" "#55FF00FF" "#00FF00FF"
"#00FF55FF" "#00FFAAFF" "#00FFFFFF" "#00AAFFFF" "#0055FFFF"
"#0000FFFF" "#5500FFFF" "#AA00FFFF" "#FF00FFFF" "#FF00AAFF"
"#FF0055FF") pch= ("1" "2" "3" "4" "5" "6" "7" "8" "9" "0" "a" "b" "c"
"d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s" "t"
"u" "v" "w" "x" "y" "z" "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K"
"L" "M" "N" "O" "P" "Q" "R" "S" "T" "U" "V" "W" "X" "Y" "Z") ...

matplot: doing 23 plots with  col= ("#FF0000FF" "#FF4000FF"
"#FF8000FF" "#FFBF00FF" "#FFFF00FF" "#BFFF00FF" "#80FF00FF"
"#40FF00FF" "#00FF00FF" "#00FF40FF" "#00FF80FF" "#00FFBFFF"
"#00FFFFFF" "#00BFFFFF" "#0080FFFF" "#0040FFFF" "#0000FFFF"
"#4000FFFF" "#8000FFFF" "#BF00FFFF" "#FF00FFFF" "#FF00BFFF"
"#FF0080FF" "#FF0040FF") pch= ("1" "2" "3" "4" "5" "6" "7" "8" "9" "0"
"a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q"
"r" "s" "t" "u" "v" "w" "x" "y" "z" "A" "B" "C" "D" "E" "F" "G" "H"
"I" "J" "K" "L" "M" "N" "O" "P" "Q" "R" "S" "T" "U" "V" "W" "X" "Y"
"Z") ...

Garbage collection 3 = 2+0+1 (level 0) ...
3.6 Mbytes of cons cells used (38%)
0.8 Mbytes of vectors used (13%)
*** glibc detected *** /usr/lib/R/bin/exec/R: double free or
corruption (!prev): 0x094f8c38 ***
======= Backtrace: =========
/lib/i686/cmov/libc.so.6[0xb7486824]
/lib/i686/cmov/libc.so.6[0xb74880b3]
/lib/i686/cmov/libc.so.6(cfree+0x6d)[0xb748b0dd]
/usr/lib/libpq.so.5(PQclear+0xf6)[0xb6e53976]
/home/ptittmann/R/i486-pc-linux-gnu-library/2.10/RdbiPgSQL/libs/RdbiPgSQL.so(PgSQLclearResult+0x25)[0xb6fc2665]
/usr/lib/R/lib/libR.so(R_RunWeakRefFinalizer+0x161)[0xb76721f1]
/usr/lib/R/lib/libR.so[0xb7672357]
/usr/lib/R/lib/libR.so[0xb76743fe]
/usr/lib/R/lib/libR.so(Rf_allocVector+0xb8)[0xb7675628]
/usr/lib/R/lib/libR.so(Rf_usemethod+0x41d)[0xb768306d]



More information about the R-help mailing list