函数未添加到 NAMESPACE

gru*_*uvn 4 r roxygen2 r-package

我有一个正在尝试添加到包中的函数。我正在通过 生成文档devtools::document()。此函数和大约 70 个其他函数的 .Rd 文件已成功生成,但此函数未添加到命名空间中。

该文件可以在以下链接中找到,也许重要的是,该文件名为truncate.distribution.r。我还有许多其他函数的名称中带有句点,所以我几乎可以肯定这不是问题。

然而,当我浏览命名空间时,我注意到这一行S3method(truncate,distribution),并想知道相似的名称是否是巧合(即逗号,而不是句点)。我尝试从名称中删除句点,并重新生成文档和命名空间,一切都工作得很好 - 也就是说,该函数与包一起导出。

虽然更改后的名称有效,但我想了解它失败的原因以及如何防止将来出现类似的失败。另外,我喜欢原来的名字。:)

有人有什么想法吗?非常感激。

gru*_*uvn 6

所以你们是对的,这与名字中的句点有关。对我们造成问题的特定文件是名称的第一部分(“truncate.”...)已经是一个基本函数,因此被解释为 S3methods。

感谢所有回答的人。我不知道为什么我被否决了 - 知道不要在函数名称中使用句点并不是固有的知识,也没有在我查看的任何地方明确禁止(即Hadley 的Google 的风格指南)。