我有一个函数,我想添加到一个包。我通过devtools::document()
生成文档。这个函数和其他70个函数的. rd文件被成功生成,但是这个函数没有被添加到命名空间中。
该文件可以在以下链接中找到,也许重要的是,它被称为truncate.distribution.r。我有许多其他函数的名称中有句号,所以我几乎可以肯定这不是问题。
然而,当我在浏览命名空间时,我注意到S3method(truncate,distribution)
行,并想知道相似的名称是否是巧合(即逗号,而不是句号)。我尝试从名称中删除句点,并重新生成文档和名称空间,并且一切都工作得很好-也就是说,函数与包一起导出。
虽然更改的名称有效,但我想了解它失败的原因以及如何防止将来出现类似的失败。而且,我喜欢原来的名字。:)
有人有什么想法吗?感谢。
所以你们是对的,这和名字中的句号有关。导致我们遇到问题的特定文件是名称的第一部分("truncate."…)已经是一个基函数,因此被解释为S3methods。
感谢所有回答的人。我不确定为什么我被否决了——知道在函数名中不使用句号并不是固有的知识,也不是我所看到的任何地方(即Hadley's或Google的风格指南)都明确禁止使用句号。
我发现了另一个类似悲伤的潜在原因。我的最后一行Roxygen代码在#' @export
命令中有一个错别字,导致同样的不良行为