I'm dealing with these type of false NOTEs as: foo1 <- function (bar) { # To please R CMD check x <- NULL; rm(list="x")
with(bar, { x }) } Of course, that may one day break with more clever code inspections. My $.02 /Henrik On Fri, Aug 22, 2014 at 2:40 AM, Martin Maechler <maech...@stat.math.ethz.ch> wrote: >>>>>> Rolf Turner <r.tur...@auckland.ac.nz> >>>>>> on Mon, 18 Aug 2014 08:47:36 +1200 writes: > > > On 17/08/14 23:05, Duncan Murdoch wrote: > >> On 16/08/2014, 9:36 PM, Daniel Braithwaite wrote: > >>> R CMD check does not object to this code when checking a > >>> package: > >>> > >>> foo1 <- function (bar) { with(bar, { x }) } > >>> > >>> but produces a warning: > >>> > >>> foo2: no visible binding for global variable 'x' > >>> > >>> in response to this: > >>> > >>> foo2 <- function (bar) { within(bar, { x }) } > >>> > >>> Is this an R bug, or at least, an inadvertent > >>> inconsistency? Here is sessionInfo() from my machine, > >>> right after starting an interactive session: > >> > >> I'm not sure, but I suspect it's an intentional > >> inconsistency. The code that checks for use of globals > >> can't do anything in with() or within() code, so bugs can > >> slip by if you use those. I think with() had been around > >> for a long time and was in wide use when that test was > >> added, but within() is newer, and it was less disruptive > >> to warn about it, so the warning has been left in. (I > >> don't remember whether the test came before or after > >> within() was introduced.) > >> > >> So if you want to avoid the warning, don't use within(). > > > Or you could have a file, say "melvin.R", in the R > > directory of your package, containing the line: > > > utils::globalVariables("x") > > Yes, but that would be a quite bad idea, IMHO: > > The checking code {from package 'codetools' BTW} > would no longer warn you about any accidental global 'x' > variable in any of your functions in your package. > > After all, these codetools checks *are* very helpful in > detecting typos and thinkos. > Consequently, I'd strongly advise to only use > globalVariables(.) on *rare* variable names. > > Martin Maechler, > ETH Zurich > > ______________________________________________ > 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.