不要通过roxygen2在构建R包中显示功能帮助文档

ali*_*boy 15 r devtools roxygen2

我正在使用devtools构建R包,并且有些功能并非设计为最终用户可见.但是,由于这些函数涉及调用C代码.Call,因此我必须@useDynLib在函数上面编写自动生成.Rd文件.这样,当我构建软件包时,即使我没有包含@export那些函数,它们仍会出现在帮助文档中......有没有办法抑制这些函数,即使它们已被记录?谢谢!

ali*_*boy 26

根据Hadley的评论,使用@keywords internal将使该功能对最终用户不可见.详细信息可以发现这里在的wiki页面devtools.


arv*_*000 10

在接受的答案中链接的维基不再讨论@keywords internal(截至2016年4月).如果有人看到一个例子是有帮助的:

# multiplyBy3
#' This is an example of an internal function called \code{multiplyBy3()}
#'
#' Sometimes you want internal functions as part of an R Package built with 
#' RStudio and roxygen2, but you don't want .Rd files created for them
#' or to have them be visible in the help document following the build process
#' 
#' @keywords internal
#'
#' @param base_num The number to multiply by three 
#'
#' @import jsonlite
#'
#' @return Returns a numeric vector
#'
multiplyBy3 <- function(base_number) {
  stopifnot(is.numeric(base_number))
  return(base_number * 3)
}
Run Code Online (Sandbox Code Playgroud)

关键位:不包含@export和包含@keywords internal


sho*_*aco 6

对我来说,@keywords internal没有用(roxygen2 6.1.1)。我可以在我的roxygen注释中使用以下命令来达到所需的结果:

@noRd
Run Code Online (Sandbox Code Playgroud)