【发布时间】:2013-06-25 11:53:20
【问题描述】:
几天前我在 Ubuntu 12.04 上升级到 R 3.0.1,但似乎没有任何效果...... :( 最烦人的是,在我在 R 3.0.1 下编译我的包后,包中的函数是只是不再存在(就像它们没有被导出一样)。这一切都在 R 2.15.3 及之前的版本中工作......
我在这里创建了一个非常简单的可重现示例 https://github.com/SamoPP/packageTest 。如果您构建包并使用 require(packageTest) 加载它,则不能在其中使用简单的函数...
问题是:
> require(packageTest)
....
> printTestPackage()
Error: could not find function "printTestPackage"
> packageTest::printTestPackage()
Error: 'printTestPackage' is not an exported object from 'namespace:packageTest'
> packageTest:::printTestPackage()
[1] "Testing!!! And it works."
如何说服 R 3.0.1 自动导出 ./R/ 文件夹中所有 *.R 文件中的所有函数在 R 3.0.1 之前的默认行为是什么?
我在这里错过了什么?
我希望消息不是:你需要在 R 版本 3.0 之后显式导出包中的所有函数......因为这意味着我可以写一两个星期的导出......我希望有一个解决方法。
感谢任何建议/提示/修复/...
编辑: 更改 NAMESPACE 文件以添加“常规”(导出不以点开头的所有内容)导出模式
exportPattern("^[^\\.]")
为我解决了这个问题,因为我没有时间为我要导出的每个函数显式编写导出。直到下一次改变...... :)
仍在寻找更优雅/“正确方式”的解决方案...
【问题讨论】:
标签: r