首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未从国产包加载的函数

未从国产包加载的函数
EN

Stack Overflow用户
提问于 2013-09-04 17:55:40
回答 1查看 3.4K关注 0票数 12

我正在学习如何使用RStudio构建自己的包。包的当前.tar.gz (名为SteenSubsSpec)是here。目前,Build & Reload命令似乎成功地构建了包&Roxygen。然而,尽管Build & Reload成功地更新了文档,但函数似乎并没有加载到内存中。我做错了什么?

Build & Reload给出了以下输出:

代码语言:javascript
复制
==> roxygenize('.', roclets=c('rd'))
  • 检查变化..。完成

==> R CMD构建SteenSubsSpec

代码语言:javascript
复制
* 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()按预期显示当前文档。然而,

代码语言:javascript
复制
require(SteenSubsSpec) 
write_paper() 

给出Error: could not find function "write_paper"

有些事情似乎是正确的:

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

我如何解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-04 18:20:19

最有可能的情况是,函数不会导出到名称空间文件(当前状态为空)。

在RStudio中,在“项目选项”中的"build“下,确保选中了”用roxygen生成文档“。然后,点击“配置”。确保“使用roxygen生成命名空间文件”也被选中。

在R函数文件中,在其中添加一个@export yourfunctionname (或者从技术上讲,添加一个#' @export yourfunctionname),当您构建和重新加载时,您的命名空间文件应该被更新,您的函数不应该再是不可见的。

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18620697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档