Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 在包中隐藏未记录的函数-使用.function\u name?_R_Function - Fatal编程技术网

R 在包中隐藏未记录的函数-使用.function\u name?

R 在包中隐藏未记录的函数-使用.function\u name?,r,function,R,Function,我需要在包中提供一些函数,我不想导出它们或为它们编写文档。我只是将它们隐藏在另一个函数中,但它们需要可用于多个函数,因此这样做会成为一个范围界定和维护问题。正确的方法是什么?我的意思是他们是否需要特殊的名字,他们是否去了R子目录以外的地方,我是否可以把他们放在一个文件中,等等?我已经查阅了这些手册,我想要的是核心中的.internals概念,但我没有任何关于如何一般地这样做的说明。我以为我以前见过这方面的东西,但现在找不到。Thx.在询问R-help后,以下是答案@DWN是正确的,不要导出内部函

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

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

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

我的解决方案是从命名空间中删除不必要的函数,并通过NAME-OF-PACKAGE:::NAME-OF-internal-function调用内部函数。例如,如果包名为RP,内部函数名为IFC。然后它会像RP:::IFC()。请注意,如果使用::(两个冒号),则可以调用名称空间中列出的函数;如果使用::(三个冒号),则可以调用所有函数,包括内部函数和导出函数。

我的解决方案是从名称空间中删除不必要的函数,并通过NAME-OF-PACKAGE::NAME-OF-internal-function调用内部函数。例如,如果包名为RP,内部函数名为IFC。然后它会像RP:::IFC()。请注意,如果使用::(两个冒号),则可以调用命名空间中列出的函数;如果使用::(三个冒号),则可以调用所有函数,包括内部函数和导出函数。

编写R扩展:Sect。1.6.1指定导入和导出。@DWin这是我首先谈到的一节,但它似乎相当不透明。例如,
指令exportPattern(“^[^\\.]”)导出所有不以句点开头的变量
意味着人们可能会这样做,但没有说明原因,也没有提供任何细节或说明此类变量(函数)可能具有特殊状态。在那之后不久,它说,
注意包含以句点开头的名称的模式:其中一些是仅内部变量,不应导出,例如.\uuuuS3methodStable.
,但这似乎表明不要使用核心内部名称。我没有导出。非导出性似乎是默认的,让我们不要记录该函数或对象。编写R扩展:Sect。1.6.1指定导入和导出。@DWin这是我首先谈到的一节,但它似乎相当不透明。例如,
指令exportPattern(“^[^\\.]”)导出所有不以句点开头的变量
意味着人们可能会这样做,但没有说明原因,也没有提供任何细节或说明此类变量(函数)可能具有特殊状态。在那之后不久,它说,
注意包含以句点开头的名称的模式:其中一些是仅内部变量,不应导出,例如.\uuuuS3methodStable.
,但这似乎表明不要使用核心内部名称。而且我没有导出。非导出性似乎是默认值,我们不需要记录该函数或对象。从技术上讲,即使导出了Rd文件,也不必编写Rd文件。:)当然,这只是一个好主意,如果你想公开你的软件包,像CRAN这样的存储库将强制执行文档标准。从技术上讲,即使你导出了Rd文件,你也不必编写它们。:)当然,这只是一个好主意,如果您想让包公开,像CRAN这样的存储库将强制执行文档标准。