R包中的命名空间

人们如何学习如何为R包提供一个名称空间? 我发现“R扩展”中的文档没有问题,但是当variables被导入或者导出的时候,我并没有真正了解到这一点 – 我需要一个虚拟指导来指导这些指令。

你如何决定输出什么? 是否真的不需要pkg ::: var语法? 那么import呢?

如果函数名称重叠,导入操作可以更容易地确保您使用其他包函数不会感到困惑吗?

S4class有特别的考虑吗?

我熟悉的那些使用sp和rgdal这样的命名空间的软件包相当复杂 – 是否有简单的例子可以使事情变得更加清晰?

我有一个关于devtools wiki的答案: http : //adv-r.had.co.nz/Namespaces.html

几年后,在这里….

我整理了钱伯斯,其他StackOverflowpost,以及R中的许多修补的结果: http : //obeautifulcode.com/R/How-R-Searches-And-Finds-Stuff/

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

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

你也可以select一个简单的,小包装,并按照它。

我半随机地看了一下我的小包里的摘要 。 我加载(小)dynamic库并导出一个符号, digest()函数。 这里是NAMESPACE文件的内容:

 ## package has dynamic library useDynLib(digest) ## and one and only one core function export(digest) 

看看其他的源文件,也许试着读写R扩展 ,看看这个例子,并做一些实验。