【发布时间】:2016-09-08 19:55:55
【问题描述】:
我有一个要添加到包中的功能。我正在通过devtools::document() 生成文档。此函数和大约 70 个其他函数的 .Rd 文件已成功生成,但此函数未添加到命名空间。
可以在以下链接中找到该文件,也许更重要的是,它被称为truncate.distribution.r。我还有许多其他名称中带有句点的函数,所以我几乎可以肯定这不是问题。
但是,当我浏览 NAMESPACE 时,我注意到了这一行 S3method(truncate,distribution),并想知道类似的名称是否是巧合(即逗号,而不是句号)。我尝试从名称中删除句点,并重新生成文档和 NAMESPACE,一切正常——也就是说,函数与包一起导出。
虽然更改后的名称有效,但我想了解它失败的原因以及将来如何防止类似的失败。另外,我喜欢原来的名字。 :)
有人有什么想法吗?非常感谢。
【问题讨论】:
-
请注意:我认为建议对这些类型的名称使用连字符而不是句点(即 truncate-distribution.r)。
-
... 因为点导致函数被解释为
S3methods(...)。简而言之,“不要那样做”。 -
连字符?我会猜到一个下划线。连字符被解析器解释为“减号”。