2

我有一些需要在包中提供的功能,我不想导出它们或为它们编写文档。我只是将它们隐藏在另一个函数中,但它们需要可用于多个函数,因此这样做会成为范围界定和维护问题。这样做的正确方法是什么?我的意思是他们是否需要特殊的名称,他们是否去其他地方而不是R子目录,我可以把它们放在一个文件中,等等?我查看了手册,我所追求的就像.internals核心中的概念,但我没有任何关于如何做到这一点的说明。我以为我以前见过这方面的东西,但现在找不到它。谢谢。

4

2 回答 2

3

我的解决方案是从 NAMESPACE 中删除不必要的函数,并通过 NAME-OF-PACKAGE:::NAME-OF-INTERNAL-FUNCTION 调用内部函数。例如,如果您的包名称是 RP,而内部函数的名称是 IFC。然后它就像 RP:::IFC()。请注意,如果您使用 ::(两个冒号),那么您可以调用 NAMESPACE 中列出的函数,而当您使用 :::(三个冒号)时,您可以调用所有函数,包括内部函数和导出函数。

于 2014-09-17T11:31:55.087 回答
1

在询问 R-help 之后,这里是答案。@Dwin 是正确的,不要导出内部函数(因此在 NAMESPACE 中修复导出指令 - 不要使用exportPattern,而是使用明确命名函数export)。您可以随意称呼它们,没有特殊的命名约定。如果不导出它们,则不必为它们编写 Rd 文件。

于 2013-06-12T17:24:53.793 回答