我正在学习使用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文件应该更新,你的函数不再是不可见的.