roxygen2 未正确生成命名空间

标签 r roxygen2

我有一个在 ubuntu 12.04 下成功构建且没有警告的软件包。该软件包是纯 R 语言,具有大约 70 个函数(大约 2000 个 LOC)。当我尝试在 Rstudio 中的 Windows 7 下构建时,包构建成功(没有警告),但 NAMESPACE 仅包含十几个函数的 export() 。我第一次遇到这种情况,可能是因为我很少使用Windows。在 3.1 以及最新版本的 Rstudio 和 roxygen2 下会发生这种情况。你们中有人遇到过这种情况吗?可能是什么原因造成的?

最佳答案

我不知道它是否与你的问题有关(我希望从那时起就已经解决了......),但我也遇到了类似的问题,事实证明这是因为与我笨拙的命名约定的不良交互。

通常,我编写名为 plot.XXX() 的函数,其中 XXX 描述应绘制的内容。 Roxygen 将它们解释为 S3 对象系统的通用函数定义。然后,XXX 被视为具有 plot() 函数的(非导出)类,并相应地编写了 NAMESPACE 文件,当然,这不是我所期望的。我想对于 str.XXX()summary.XXX() 等或 XXX.data.frame() 也会发生同样的情况code> 等。我没有这些,但如果有的话那就有意义了。

为了解决这个问题,我只是将函数名称中的点替换为下划线...并发现了 S3/S4/S5 的新世界!

关于roxygen2 未正确生成命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23551138/

相关文章:

r - I(x) := y and `:=` (I(x) = y) 之间差异的 data.table 错误

r - 如何使用 roxygen 记录包含同名函数的 R 包?

将包文档渲染到 github wiki

R 包错误获取 ("rgeos",envir = .MAPTOOLS_CACHE) : object 'rgeos' not found

r - "Error in namespaceExport(ns, exports) : undefined exports"是什么意思?

r - 使用 R reshape 和绘制 linux dstat CSV 文件

r - 如何在简单矩阵中使用 corrplot

R 如何改变行的子集

r - 根据现有列和分组在 R 数据框中创建新列

r - 我可以从 roxygen2 示例中自动生成 testthat 的单元测试吗?