Skip to content

[R-pkg-devel] dplyr usage inside another package

4 messages · Uwe Ligges, Jennifer Bryan, Jonathan Callahan

#
Greetings,

I'm using dplyr inside of another package with examples like this:

data <- dplyr::filter(data, datetime >= trange[1], datetime <= trange[2])


When I run my package through R CMD check I get the following NOTES:

monitorSubsetData: no visible binding for global variable ?datetime?


I already have dplyr listed in the package Depends: section of the
DESCRIPTION.

I'm also encountering

no visible global function definition for ?matches?


when I try to use the dplyr internal function matches().

Is there any way to allow for dplyr syntactic sugar inside of my package or
do I need to be pedantic and say data$datetime in the first example and
dplyr::matches in the second? (Will dplyr::matches even work when it is not
an exported function?)

Thanks,

Jon
#
On 11.08.2015 00:35, Jonathan Callahan wrote:
You can, but this is non-standard reference to datetime the codetools do 
not anticipate and hence you need to declare it via globalVariables().
If it is any package you use in private you can use triple colons. If 
you want the package to be published on CRAN, then you must not use 
non-exported functions (hence not in the API of the package).

Best,
Uwe Ligges
#
Hi Jonathan,

Re: this note: no visible binding for global variable ?datetime?

In programming and packages, it is recommended to use special versions of dplyr?s single table verbs, e.g., use `filter_()` as opposed to `filter()`. Note the underscore. The ?underscore? functions use standard evaluation instead of non-standard evaluation. This vignette contains more details:

https://cran.rstudio.com/web/packages/dplyr/vignettes/nse.html

HTH,
Jenny
#
Thanks Jenny! Just the advice I was looking for.
On Mon, Aug 10, 2015 at 4:40 PM, Jennifer Bryan <jenny at stat.ubc.ca> wrote: