在我的R包中,包手册.pdf文件中省略了一些函数 - 它们都是S3方法,其中几个函数一起记录。所有其他“正常”功能都正确显示,所以我怀疑我没有正确记录S3方法。
我希望myfun
的条目出现在手册中。现在,完全没有.pdf手册中的函数,尽管它仍然可以正确调用,其帮助页面引用了?myfun
。我的Roxygen2关键字是错误的吗?
#' @export
myfun <- function(...) UseMethod("myfun")
#' @inheritParams myfun
#' @describeIn myfun Create a frequency table from a vector.
#' @export
#' @keywords internal
myfun.default <- function(vec, sort = FALSE, show_na = TRUE, ...) {
...
}
#' @inheritParams myfun.default
#' @describeIn myfun Create a frequency table from a data.frame,
#' supplying the unquoted name of the column to tabulate.
#' @export
#' @keywords internal
tabyl.data.frame <- function(.data, ...){
...
}
(我省略了@title, @description, @param, @return, @examples
行以保持此问题更短,但如果相关则可以编辑它们。
通用方法按预期导出,因此用户只能看到myfun()
而不是myfun.default()
或myfun.data.frame()
,除非他们使用三重冒号:::
。我想保留这种行为,因此用户只需调用myfun
,同时在包手册中也有myfun
的条目。
答案 0 :(得分:0)
我在两个@keywords internal
方法中删除了myfun.
并执行了此操作:myfun
出现在软件包的手册中。我也切换到了@rdname myfun
而不是@describeIn myfun
,以消除函数文档中的&#34;方法(按类):&#34;
这使得难以隔离的原因是,如果我运行devtools::document()
然后不重启会话,那么方法myfun.data.frame
和myfun.default
在RStudio&#39;中可见。 s自动完成,可以直接调用。它们不应该被用户访问,我认为我的Roxygen2文档应该受到责备。
事实上,我所要做的就是删除@keywords internal
。
在myfun.data.frame
输入myfun.default
之后,方法?
和?myfun.default
会出现在自动填充中,但我认为&#39 ; s无处可去(无论如何,它指向所有三个myfun
函数的单个帮助页面)。这是标准的。例如,?print.aov
是可见的帮助文件,而print.aov()
无法直接调用。