tl;dr version of my question
If I want to import packages, do I have to manually write import() directives into my NAMESPACE file? It seems like roxygen2 won't magically do that for me, even if I have them listed as "Imports:" in my description.
Fuller Version
This is a pretty dumb question, but I ask because the answer's not obvious to me.
I use roxygen2 to handle my R package documentation. When I want to be sure a function is exported, I add an @export tag to its roxygen block. Subsequent runs of roxygenize() will write the NAMESPACE directive accordingly.
But, my package currently imports several others:
Depends: R (>= 2.13.0), ggplot2 (>= 0.8.9) Imports: RColorBrewer, plyr, gridExtra It appears that while roxygen2 will rewrite the NAMESPACE directive for exported functions, it won't automatically rewrite NAMESPACE to reflect packages I've designated should be imported in my DESCRIPTION.
@imports packageor@importsFrom package function,roxygen2will take care of writing thenamespacedirectives.NAMESPACEbut notDESCRIPTION@importFrom package function, not--@importsFrom.(no s)@import dplyrin the roxygen block of your .R file, then refer to dplyr functions in your code like this:select(). Option 2 is to put dplyr in theImports:field of yourDESCRIPTION, then use::notation in your R files, like this:dplyr::select. If you're using the package a lot in a given file, I suggest you use@import. If you only use it a little, I suggest double colon notation and listing it ONLY inImports:.