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)
Duncan Murdoch
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel