几天前,我在 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("^[^\\.]")
为我解决了这个问题,因为我没有时间为我要导出的每个函数显式编写导出。直到下一次改变...... :)
仍在寻找更优雅/“正确方式”的解决方案......