Thanks all - ended up going with test<<-test On Thu, Mar 29, 2012 at 4:40 PM, Peter Langfelder < peter.langfel...@gmail.com> wrote:
> On Thu, Mar 29, 2012 at 3:49 PM, Benjamin Caldwell > <btcaldw...@berkeley.edu> wrote: > > Hello, > > > > I'm trying to create a vector of r^2 values for using a function which I > > will run in a "for" loop. Example: > > > > per<-rnorm(100,.5,.2)^2 > > x<-rnorm(100,10,5) > > y<-rnorm(100,20,5) > > fr<-data.frame(x,y,per) > > > > test<-rep(0,9) > > > > plotter<-function(i){ > > temp.i<-fr[fr$per <=(i*.10),] > > with(temp.i, plot(x, y, main=(i*.10),)) > > mod<-lm(y~x-1,data=temp.i) > > r2<-summary(with(temp.i, lm(y~x)))$adj.r.squared > > legend("bottomright", legend=signif(r2), col="black") > > test[i]<-r2 > > print(r2) > > abline(mod) > > rm(temp.i) > > rm(i) > > rm(mod) > > rm(r2) > > } > > > > test > > > > Test comes up as the original vector of zeros. I know r2 is created for a > > couple reasons (print works, and they show up on the graphs). Also, if I > > run the function line by line with i assigned a number, test[i] is > assigned > > as it should be. However, if I call the function, plotter(i), test is not > > modified, although the r^2 prints. > > > > Mystified. What am I missing? > > > Add the line > > test > > to the end of your function; this will cause the function to return > the value of the vector test. > > Then call the function as > > test = plotter(1) > > or something. > > You're missing the fact that in R all function arguments are passed by > value (think of them as being copied) and your function assigns a > value in a local copy of the vector test. This copy is discarded when > the function exits. The global copy is not modified. Of course, when > you step through the lines individually (not within a function call), > you work with the global test. > > HTH > > Peter > [[alternative HTML version deleted]] ______________________________________________ R-help@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.