我升级至R 3.0.1在Ubuntu 12.04,前几天和似乎没有任何工作任何更多... :(最讨厌的事情是,经过我编译我在R程序包在包3.0.1函数只是不存在了(就像他们不出口),这所有的工作中的R 2.15.3和前...就R 3.0.1功能更多
我创建了一个非常简单的重复的例子, 。这里https://github.com/SamoPP/packageTest如果你建立包,将其使用要求(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 3.0.1之前的默认行为的所有* .R文件中的所有功能?
我在这里错过了什么?
我希望消息是不是:你需要明确导出所有功能包 - [R版本3.0以后......因为这意味着我可以写为出口一两个星期......我希望有一个解决方法。
感谢任何建议/提示/修复/ ...
编辑: 以这样的方式改变空间文件通过
添加“一般”(出口一切不以点开头)出口格局exportPattern("^[^\\.]")
解决了我的问题,因为我没有时间去明确写入出口为每一个功能我要出口。直到下次改变.... :)
还在寻找更优雅/“正确的方式”解决方案......
感谢您的回答。那么,是的,NAMESPACE已经推出了,但我认为在以前的版本中并不强制。不幸的是,我在这么多的包中创建了这么多的函数,我不能使用“export(functionName)”一个接一个地显式导出它们......寻找解决方法。有人发现看文档。 – Samo
它在R'2.15'中是强制性的。我很确定。 – Henrik
谢谢。那么可能是这种情况,但是我的设置只有在升级到R 3.0.1之后才会停止工作。这里的官方文档http://cran.r-project.org/doc/manuals/R-exts.html#Package-namespaces表示,“在R 2.14.0之前,命名空间在软件包中是可选的:在默认命名空间上生成安装在2.14.x和2.15.x中。从3.0.0开始,命名空间是强制性的。“ – Samo