我正在学习如何使用RStudio构建自己的包。包的当前.tar.gz (名为SteenSubsSpec)是here。目前,Build & Reload命令似乎成功地构建了包&Roxygen。然而,尽管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我如何解决这个问题?
发布于 2013-09-04 18:20:19
最有可能的情况是,函数不会导出到名称空间文件(当前状态为空)。
在RStudio中,在“项目选项”中的"build“下,确保选中了”用roxygen生成文档“。然后,点击“配置”。确保“使用roxygen生成命名空间文件”也被选中。
在R函数文件中,在其中添加一个@export yourfunctionname (或者从技术上讲,添加一个#' @export yourfunctionname),当您构建和重新加载时,您的命名空间文件应该被更新,您的函数不应该再是不可见的。
https://stackoverflow.com/questions/18620697
复制相似问题