Drew Steen
Drew Steen

Reputation: 16637

functions not loaded from homebuilt package

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'))

==> 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:

How can I troubleshoot this?

Upvotes: 12

Views: 4007

Answers (1)

A5C1D2H2I1M1N2O1R2T1
A5C1D2H2I1M1N2O1R2T1

Reputation: 193687

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.

Upvotes: 17

Related Questions