我正在学习使用RStudio构建自己的包。包的当前.tar.gz
(名为SteenSubsSpec
)是here。目前Build & Reload
命令似乎构建&成功地对包装进行氧气处理。但是,尽管Build & Reload
成功更新了文档,但这些函数似乎并未加载到内存中。我做错了什么?
Build & Reload
给出以下输出:
==> roxygenize('.', roclets=c('rd'))
==> 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]
这会更新文档:?write_paper()
按预期显示当前文档。然而
require(SteenSubsSpec)
write_paper()
给出Error: could not find function "write_paper"
有些事情似乎是正确的:
R
目录中,并且与其定义具有相同的名称(例如/R/write_paper.R
定义write_paper() <- function {...
DESCRIPTION
文件包含所有相关功能文件的名称:Collate: ... 'write_paper.R
我该如何解决这个问题?
答案 0 :(得分:10)
最有可能的是,这些函数不会导出到NAMESPACE文件(您声明当前为空)。
在RStudio中,在“项目选项”中的“构建工具”下,确保选中“使用roxygen生成文档”。然后,单击“配置”。确保还检查“使用roxygen生成NAMESPACE文件”。
在您的R函数文件中,在其中添加@export yourfunctionname
(或者,在技术上,添加#' @export yourfunctionname
),在构建和重新加载时,应更新NAMESPACE文件并且不再需要您的函数是看不见的。