函数未添加到 NAMESPACE

function not being added to NAMESPACE

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

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

但是,当我浏览 NAMESPACE 时,我注意到这一行 S3method(truncate,distribution),并且想知道相似的名称是否是巧合(即逗号,而不是句点)。我尝试从名称中删除句点,并重新生成文档和 NAMESPACE,一切正常 - 也就是说,函数随包一起导出。

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

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

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

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

我发现了造成类似悲伤的另一个潜在原因。我的最后一行 Roxygen 代码在 #' @export 命令中有一个拼写错误,导致同样糟糕的行为