http://cran.r-project.org/doc/manuals/r-patched/R-exts.html#Suggested-packages
suggests e.g. Lahman::battingLabels, and that does work for lazy-loaded
datasets (which is what these appear to be).
We have seen a couple of other instances in which this was needed for
code within the package. However, in this case I would have thought
battingLabels etc were really system data and should be in sysdata.rda.
See ?data.
As the reference suggests, putting Lahman on the search path does not
necessarily work correctly: what if a user (or someone else's package!)
puts another package on the search path which masks battingLabels?
Assuming you want the version in the package, you have to say so. (If
you do not, supply argument 'labels'.)
On 27/08/2014 15:07, Michael Friendly wrote:
On 8/27/2014 9:29 AM, Michael Friendly wrote:
It works in the sense that Lahman::Label("yearID") will
work even when Lahman is not in the search path,
but R-devel CMD check will still give the same NOTE,
though you can argue that that note is actally a "false positive".
So, this would be version 1 of "2)":
Label <- function(var, labels) {
stopifnot(require(Lahman, quietly=TRUE))
if(missing(labels)) labels <- rbind(battingLabels, pitchingLabels,
fieldingLabels)
wanted <- which(labels[,1]==var)
if (length(wanted)) labels[wanted[1],2] else var
}
And this would be version 2, using data():
Label <- function(var, labels) {
stopifnot(require(Lahman, quietly=TRUE))
if(missing(labels)) {
data(battingLabels); data(pitchingLabels); data(fieldingLabels)
labels <- rbind(battingLabels, pitchingLabels, fieldingLabels)
}
wanted <- which(labels[,1]==var)
if (length(wanted)) labels[wanted[1],2] else var
}
Just to follow up: R-devel likes this less than it does my initial
version. I still get no visible binding NOTES, and complaint about
using data() in a function:
* checking R code for possible problems ... NOTE
Label: no visible binding for global variable 'battingLabels'
Label: no visible binding for global variable 'pitchingLabels'
Label: no visible binding for global variable 'fieldingLabels'
battingStats: no visible binding for global variable 'Batting'
battingStats: no visible global function definition for 'mutate'
playerInfo: no visible binding for global variable 'Master'
teamInfo: no visible binding for global variable 'Teams'
Found the following calls to data() loading into the global environment:
File 'Lahman/R/Label.R':
data(battingLabels)
data(pitchingLabels)
data(fieldingLabels)
See section 'Good practice' in '?data'.
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
--
Brian D. Ripley, rip...@stats.ox.ac.uk
Emeritus Professor of Applied Statistics, University of Oxford
1 South Parks Road, Oxford OX1 3TG, UK
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel