From hb at stat.berkeley.edu  Mon Apr 12 17:24:00 2010
From: hb at stat.berkeley.edu (Henrik Bengtsson)
Date: Mon, 12 Apr 2010 17:24:00 +0200
Subject: [Rd] R CMD check tells me 'no visible binding for global
	variable ', what does it mean?
In-Reply-To: <4BC3375C.4060007@stats.uwo.ca>
References: <Zen-1O1Kzf-0000MF-9i@smarthost01.mail.zen.net.uk>
	<4BC3375C.4060007@stats.uwo.ca>
Message-ID: <m2t59d7961d1004120824uf78b2ff6td9b42b2a03e523e0@mail.gmail.com>

On Mon, Apr 12, 2010 at 5:08 PM, Duncan Murdoch <murdoch at stats.uwo.ca> wrote:
> On 12/04/2010 10:51 AM, Michael Dewey wrote:
>>
>> When I run R CMD check on a package I have recently started work on I get
>> the following:
>>
>> * checking R code for possible problems ... NOTE
>> addlinear: no visible binding for global variable 'x'
>>
>> I appreciate that this is only a NOTE and so I assume is R's equivalent of
>> 'This is perfectly legal but I wonder whether it is really what you
>> intended' but I would like to understand it.
>>
>> In the relevant function addlinear the following function is defined
>> locally:
>>
>> ? ?orfun <- function(x, oddsratio) {1/(1+1/(oddsratio * (x/(1-x))))}
>>
>> and then used later in curve
>>
>> ? ? ? curve(orfun(x, exp(estimate)), from = 0.001, to = 0.999, add = TRUE)
>>
>> These are the only occurrences of 'x'.
>>
>> Is it just telling me that I have never assigned a value to x? Or is it
>> more sinister than that? As far as I can tell the function does what I
>> intended.
>
> The curve() function evaluates the first argument in a strange way, and this
> confuses the code checking. ?(The variable name "x" is special to curve().)
>
> I think you can avoid the warning by rewriting that call to curve() as
>
> curve(function(x) orfun(x, exp(estimate)), from = 0.001, to = 0.999, add =
> TRUE)

...or

x <- NULL; rm(x); # Dummy to trick R CMD check
curve(orfun(x, exp(estimate)), from = 0.001, to = 0.999, add = TRUE)

/Henrik

>
> Duncan Murdoch
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>



[Rd] R CMD check tells me 'no visible binding for global variable ', what does it mean?
Henrik Bengtsson