On 17/05/11 06:05, swaraj basu wrote:
Dear All,
I have built a package which has a data.frame "annotIndex.rda
in its "data" folder.
I am using this data frame within two functions in my package.
Though my package works fine, yet when I do a
R CMD check
to my package I get the following two notes
get.affy.ensembl: no visible binding for global variable
‘annotIndex’
get.affy.id: no visible binding for global variable
‘annotIndex’
I need help in understanding these notes, and how can I avoid
them.
This may be a case of the blind leading the blind, but here goes.
Understanding is simple (I think!). You are referring to an object
"annotIndex"
inside a function, as in
foo <- function(x) {
x + annotIndex # Don't worry about the fact that this doesn't make sense!
}
When the package checker looks at this it says "Hmmmm, annotIndex has never
been defined (inside "foo") so it might not exist. There *could* be a
problem here."
What to do about it: One solution is just to ignore the note; it's only
a note,
not an error, nor even a warning, and you know that there isn't actually
a problem.
The solution that is often suggested --- see
RSiteSearch("{no visible binding}",restrict=c("Rhelp02","Rhelp08"))
of assigning annotIndex a value, e.g. annotIndex <- NULL, at the beginning
of your function doesn't work here since that local NULL value will
over-ride the
global value that you really want.
You might try (the appropriate analogue of) x +
get("annotIndex",envir=.GlobalEnv).
That should satisfy the package checker. (I haven't tested it, but.)
Dunno if this has an adverse impact on the efficiency of your code.
HTH
cheers,
Rolf Turner
______________________________________________
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.