Dear Zhong-Yuan Zhang, R is lexically scoped. Pretending that you're using a different programming language is probably a bad idea.
The findGlobals() function in the codetools package, which is part of the standard R distribution, can help you locate references to global variables (and functions) in a function. For example, > f <- function() g(a) > findGlobals(f) [1] "a" "g" > ff <- function() {a <- 10; g(a)} > findGlobals(ff) [1] "{" "<-" "g" > fff <- function(a) g(a) > findGlobals(fff) [1] "g" I hope this helps, John > -----Original Message----- > From: r-help-boun...@r-project.org [mailto:r-help-bounces@r- > project.org] On Behalf Of Zhong-Yuan Zhang > Sent: Wednesday, November 06, 2013 7:32 AM > To: r-help@r-project.org > Subject: Re: [R] Function does not see variables outside the function > > Dear Experts: > > I am very appreciate your comments and help! > > Actually I am a new comer from MATLAB. If the function > > can see global variables, then it may output wrong results without > > any error messages. For example, there is a gloabl variable named > > v, and I write one funciton with one local variable x. However, in some > line, > > I misspelled x to v, which would results in unexpected errors without > warning. > > In summary, I want to disable the ability to make debugging easier. > > Best. > > > 2013/11/5 Carl Witthoft <c...@witthoft.com> > > > Why would you want to impose this restriction? Perhaps if you > explain what > > you are trying to do, we can suggest approaches that will satisfy > your > > specific needs. > > (note- one can always redefine whatever variables are to be > "excluded." > > E.g. > > to keep the body of a function from referring to 'foo' in the calling > > environment, just add the line 'foo<-NA' inside the function) > > > > > > Zhong-Yuan Zhang wrote > > > In MATLAB, functions cannot see variables outside the > > > > > > functions. However, in R, the functions can do that. Is there > > > > > > any settings that can disable this ability of functions? > > > > > > > > > ______________________________________________ > > > > > R-help@ > > > > > 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. > > > > > > > > > > > > -- > > View this message in context: > > http://r.789695.n4.nabble.com/Function-does-not-see-variables- > outside-the-function-tp4679762p4679768.html > > Sent from the R help mailing list archive at Nabble.com. > > > > ______________________________________________ > > 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. > > > > > > -- > Zhong-Yuan Zhang (PhD.) > Associate Professor > School of Statistics > Central University of Finance and Economics > 39 South College Road, Haidian District, Beijing, P.R.China 100081 > Email: zhyua...@gmail.com > Homepage: http://en.stat.cufe.edu.cn/zhongyuanzhang/ > > [[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. ______________________________________________ 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.