I think what he is referring to is that findGlobals lists mean under variables rather than functions when you do this with his f:
> findGlobals(f, FALSE) $functions [1] "{" "apply" $variables [1] "mean" On Tue, Apr 8, 2008 at 7:14 AM, Duncan Murdoch <[EMAIL PROTECTED]> wrote: > Christophe Genolini wrote: > >>> f <- function(x){apply(x,2,mean)} > >>> findGlobals(f) > >>> > >> mean is a global variable, so findGlobals gets it right. > >> > > That sound strange to me: a "variable" is something that vary... mean > > does not vary. maen will ge an argument that is a line of x and will > > make some calculous on it, that is the comportement of a function. > > Of course, mean is an argument of an other function, but I do not think > > this is a reason good enouth to say that mean is a variable. > > > > findGlobals doesn't try to tell what mean is; it's just reporting on how > you've used it. Your usage means that the interpreter will treat it as > a variable, getting a copy of its value and passing it as an argument to > apply. (That's an oversimplification, of course: it's very unlikely > that an actual copy will be made, but it will act as if one was made.) > > > Furthemore, I use findGlobals to detect some typo. In > > > > f <- function(myObject){return(mObject^2)} > > > > findGlobals will detect that mObject is a global so I know there is a > > typo somewhere. > > Considering mean as a globals do not let us use findGlobals this way. > > > > > > You can still use it to detect that kind of typo, but you need a second > step where you check whether the globals exist in the environment of the > function or not. That test won't be perfect either: it will miss cases > where you meant to type a local variable, but by mistake typed the name > of some global. Most uses of mean as a variable would fall into that > category; unfortunately (?) apply means some of them are legitimate. > > I think the best you'll ever be able to do is to get some suggestions of > errors, with both false positives and false negatives. If there were > cases where some usage was definitely an error, the parser would > probably catch it. > > Duncan Murdoch > > > > > Christophe > > > > ______________________________________________ > > 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. > ______________________________________________ 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.