functions not loaded from homebuilt package

2019-06-15 19:30发布

问题:

I'm learning to build my own packages using RStudio. The current .tar.gz for the package (named SteenSubsSpec) is here. Currently the Build & Reload command appears to build & Roxygen-ize the package successfully. However, the functions do not appear to be loaded into memory, despite the fact Build & Reload successfully updates the documentation. What am I doing wrong?

Build & Reload give the following output:

==> roxygenize('.', roclets=c('rd'))
  • checking for changes ... DONE

==> R CMD build SteenSubsSpec

* checking for file ‘SteenSubsSpec/DESCRIPTION’ ... OK
* preparing ‘SteenSubsSpec’:
* checking DESCRIPTION meta-information ... OK
* excluding invalid files
Subdirectory 'R' contains invalid file names:
  ‘2013_08_30_report-concordance.tex’ ‘2013_08_30_report.Rnw’
  ‘2013_08_30_report.log’ ‘2013_08_30_report.pdf’
  ‘2013_08_30_report.synctex.gz’ ‘2013_08_30_report.tex’
* checking for LF line-endings in source and make files
* checking for empty or unneeded directories
Removed empty directory ‘SteenSubsSpec/inst’
* building ‘SteenSubsSpec_1.0.tar.gz’

Source package written to ~/Dropbox/[my directory]

This updates the documentation: ?write_paper() displays the current documentation as expected. However

require(SteenSubsSpec) 
write_paper() 

gives Error: could not find function "write_paper"

Some things that seem to be correct:

  • All function files are in the R directory, and have the same name as their definition (e.g /R/write_paper.R defines write_paper() <- function {...
  • The DESCRIPTION file contains the names of all the relevant function files: Collate: ... 'write_paper.R

How can I troubleshoot this?

回答1:

Most likely, the functions are not exported to the NAMESPACE file (which you state is currently empty).

In RStudio, under "build tools" in "project options", make sure that "Generate documentation with roxygen" is checked. Then, click on "configure". Make sure that "Use roxygen to generate NAMESPACE file" is also checked.

In your R function files, add an @export yourfunctionname in there (or, technically, an #' @export yourfunctionname), and when you build and reload, your NAMESPACE file should be updated and your functions should no longer be invisible.



标签: r rstudio