Hello How to create plots dynamically with results of several analysis ? I got many outputs from lm fuction like: mp1.lm mp2.lm mp3.lm mp4.lm mp5.lm ... I'd like to make experimental versus predicted response plots of all analysis in a 'for loop': for( i in 1:10){ x11() plot( mp*i*$experimental_response, fitted( mp*i* ) ); abline(0,1) } I tried: paste( 'mp', i, sep=''), but it don't work. How to make this reference? Regards Cleber
There are undoubtedly many ways to do this. See the get() function. for( i in 1:10) { nm <- paste( 'mp',i,'.lm',sep='') tmp <- get( nm ) plot( tmp$experimental_response, fitted(tmp) ) abline(0,1) title(nm) readline('CR to continue ') } And you may need to specify pos or envir in get() Another way would be to put your outputs from lm in a list, which you could do at the time you create them, instead of afterwords, as here: lmout <- list(mp1=mp1.lm, mp2=mp2.lm, mp3=mp3.lm) lapply( lmout, function(ff) { plot(ff$experimental_response,fitted(ff)) ; abline(0,1) } ) I haven't tested these precisely; there may be typographical errors. -Don At 7:14 PM -0100 3/30/06, klebyn wrote:>Hello > >How to create plots dynamically with results of several analysis ? > >I got many outputs from lm fuction like: > >mp1.lm mp2.lm mp3.lm mp4.lm mp5.lm ... > >I'd like to make experimental versus predicted response plots of all >analysis >in a 'for loop': > >for( i in 1:10){ >x11() > >plot( mp*i*$experimental_response, fitted( mp*i* ) ); abline(0,1) > >} > >I tried: paste( 'mp', i, sep=''), but it don't work. > > >How to make this reference? > > >Regards > >Cleber > >______________________________________________ >R-help at stat.math.ethz.ch mailing list >https://stat.ethz.ch/mailman/listinfo/r-help >PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html-- -------------------------------------- Don MacQueen Environmental Protection Department Lawrence Livermore National Laboratory Livermore, CA, USA
Instead of creating separate objects for each one, why not just a list to hold the data. Instead of having mp1.lm ... mp10.lm, you would have mp.lm[[1]] ... mp.lm[[10]] and therefore your loop could look like: for( i in 1:10){ x11() plot( mp[[i]]$experimental_response, fitted( mp[[i]]) ); abline(0,1) } If you really want to use separate variable, look at 'get'. On 3/30/06, klebyn <klebyn@yahoo.com.br> wrote:> > > Hello > > How to create plots dynamically with results of several analysis ? > > I got many outputs from lm fuction like: > > mp1.lm mp2.lm mp3.lm mp4.lm mp5.lm ... > > I'd like to make experimental versus predicted response plots of all > analysis > in a 'for loop': > > for( i in 1:10){ > x11() > > plot( mp*i*$experimental_response, fitted( mp*i* ) ); abline(0,1) > > } > > I tried: paste( 'mp', i, sep=''), but it don't work. > > > How to make this reference? > > > Regards > > Cleber > > ______________________________________________ > R-help@stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! > http://www.R-project.org/posting-guide.html >-- Jim Holtman Cincinnati, OH +1 513 646 9390 (Cell) +1 513 247 0281 (Home) What the problem you are trying to solve? [[alternative HTML version deleted]]