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.

Reply via email to