From info at aghmed.fsnet.co.uk  Tue Apr 13 19:37:56 2010
From: info at aghmed.fsnet.co.uk (Michael Dewey)
Date: Tue, 13 Apr 2010 18:37:56 +0100
Subject: [Rd] Summary,
 was Re: R CMD check tells me 'no visible binding for global
 variable ', what does it mean?
In-Reply-To: <m2t59d7961d1004120824uf78b2ff6td9b42b2a03e523e0@mail.gmail .com>
References: <Zen-1O1Kzf-0000MF-9i@smarthost01.mail.zen.net.uk>
	<4BC3375C.4060007@stats.uwo.ca>
	<m2t59d7961d1004120824uf78b2ff6td9b42b2a03e523e0@mail.gmail.com>
Message-ID: <Zen-1O1lyU-0000d1-JH@smarthost02.mail.zen.net.uk>

At 16:24 12/04/2010, Henrik Bengtsson wrote:

>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:
> >>

Just to draw a line under it my comment inline below

> >> 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)

Yes, Duncan is correct that avoids the note.
I found this aesthetically more pleasing than Henrik's suggestion but 
other people's taste may be different.

Thanks for the prompt and interesting replies.

>...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
> >

Michael Dewey
http://www.aghmed.fsnet.co.uk



[Rd] Summary, was Re: R CMD check tells me 'no visible binding for global variable ', what does it mean?
Michael Dewey