函数未从自制软件包加载

Dre*_*een 11 r rstudio

我正在学习使用RStudio构建自己的包.目前.tar.gz的包(命名SteenSubsSpec)是在这里.目前,该Build & Reload命令似乎可以成功构建&Roxygen-ize包.但是,尽管事实上Build & Reload成功更新了文档,但这些函数似乎并未加载到内存中.我究竟做错了什么?

Build & Reload 给出以下输出:

==> roxygenize('.', roclets=c('rd'))
Run Code Online (Sandbox Code Playgroud)
  • 检查更改...完成

==> R CMD构建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]
Run Code Online (Sandbox Code Playgroud)

这将更新文档:?write_paper()按预期显示当前文档.然而

require(SteenSubsSpec) 
write_paper() 
Run Code Online (Sandbox Code Playgroud)

Error: could not find function "write_paper"

一些似乎是正确的事情:

  • 所有函数文件都在R目录中,并且与其定义具有相同的名称(例如,/R/write_paper.R定义write_paper() <- function {...
  • DESCRIPTION文件包含所有相关函数文件的名称:Collate: ... 'write_paper.R

我该如何解决这个问题?

A5C*_*2T1 11

最有可能的是,这些函数不会导出到NAMESPACE文件(您声明当前为空).

在RStudio中,在"项目选项"中的"构建工具"下,确保选中"使用roxygen生成文档".然后,单击"配置".确保还检查"使用roxygen生成NAMESPACE文件".

在你的R函数文件中,添加一个@export yourfunctionname(或者在技术上,一个#' @export yourfunctionname),当你构建和重新加载时,你的NAMESPACE文件应该更新,你的函数不再是不可见的.