Thanks Luke! It works! My mistake was that I used "local binding" only for "i" and not for the whole function.
Best regards, Florin On Thu, 26 Mar 2009 10:57:21 -0500 (CDT) l...@stat.uiowa.edu wrote: > for() does not creae separete bindings for the index each iteration, > so the function bodies see the global binding of i, which in this case > will be the final value. One possible solution is to use local(), > e.g. > > for(i in 1:3){ > assign(paste("f",i,sep=""), > local({ > k <- i # create local binding with current loop > index value function(x) x + k > })) > } > > > luke > > > On Thu, 26 Mar 2009, Florin Maican wrote: > > > Hi > > > > I want to create the following functions in a loop > > > > f1<-function(x){x+1} > > f2<-function(x){x+2} > > f3<-function(x){x+3} > > > > Output f1(2)=3 > > f2(2)=4 > > f3(2)=5 > > > > > > I tried to create the in a loop as bellow but I get wrong on answers > > because the value of i change > > > > for(i in 1:3){ > > assign(paste("f",i,sep="") > > ,function(x) > > x+i > > ) > > } # end for > > > > Output f1(2)=5 > > f2(2)=5 > > f3(2)=5 > > But it is not what I want. The question is how I can > > fix in R the value of "i" in my functions? I tried to use assign() > > and get(),but I did not manage. > > > > Thanks in advance, > > Florin > > > > > -- Florin G. Maican ================================== Ph.D. candidate, Department of Economics, School of Business, Economics and Law, Gothenburg University, Sweden ----------------------------------- P.O. Box 640 SE-405 30, Gothenburg, Sweden Mobil: +46 76 235 3039 Phone: +46 31 786 4866 Fax: +46 31 786 4154 Home Page: http://maicanfg.googlepages.com/index.html E-mail: florin.mai...@handels.gu.se ------------------------------------ "Not everything that counts can be counted, and not everything that can be counted counts." --- Einstein --- ______________________________________________ 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.