我有一个在 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/