R包中的命名空间

mds*_*ner 56 r

人们如何学习如何为R包命名空间?我发现"R Extensions"中的文档很好,但我并不真正了解导入或导出变量时发生的事情 - 我需要这些指令的虚拟指南.

你如何决定出口?是不是只需要pkg ::: var语法的所有内容?进口怎么样?

当函数名称重叠时,导入是否更容易确保您对其他包函数的使用不会混淆?

S4课程有特殊注意事项吗?

我熟悉的使用名称空间(如sp和rgdal)的软件包非常复杂 - 是否有简单的示例可以使事情更清晰?

had*_*ley 37

我在devtools wiki的答案上有一个开头:http://adv-r.had.co.nz/Namespaces.html

  • 但最好使用`roxygen2`为你创建它. (3认同)

SFu*_*n28 24

几年后在这里....

我整合了钱伯斯的调查结果,其他StackOverflow帖子以及R中的大量修补:http: //blog.obeautifulcode.com/R/How-R-Searches-And-Finds-Stuff/

这不是关于实施NAMESPACE/IMPORTS/DEPENDS以及更多关于这些结构的目的.回答你的一些问题.


Tyl*_*ler 14

我读过的最清楚的解释是在约翰钱伯斯的数据分析软件:用R编程,第103页.我不知道任何免费的在线解释比你在R扩展手册中已经找到的更好.


Dir*_*tel 11

您也可以选择一个简单的小包装并按照它进行操作.

我半随机地看了一下digest,这是我的一个较小的包.我加载一个(小)动态库并导出一个符号,即digest()函数.以下是NAMESPACE文件的内容:

## package has dynamic library
useDynLib(digest)

## and one and only one core function
export(digest)
Run Code Online (Sandbox Code Playgroud)

看看其余的源文件,也可以尝试阅读Writing R Extensions并查看示例,并进行一些实验.

  • 很好,加上校验和算法 - 我一直在想是否有一个Rc...我的意思是一个R包;) (2认同)