2013-04-09 40 views
10

我使用devtools來構建R程序包,並且有一些功能不能被終端用戶看到。但是,由於這些功能涉及通過.Call調用C代碼,因此我必須將@useDynLib編寫在用於自動生成.Rd文件的函數之上。這樣,當我構建軟件包時,即使我沒有包含這些函數的@export,它們仍然出現在幫助文檔中...有沒有辦法通過抑制這些函數,即使它們已被記錄在案?謝謝!不顯示功能幫助文檔通過roxygen2構建R程序包

+1

你只需要每包一個'useDynLib'聲明。 – hadley 2013-04-09 03:35:37

+0

@hadley:謝謝,我已經糾正了......但仍然沒有'@ export'的函數在幫助文檔中,我希望它對最終用戶不可見。任何方法來「壓制」生產.RD文件? – alittleboy 2013-04-09 03:38:35

+1

請勿使用roxygen註釋? – hadley 2013-04-09 04:49:49

回答

19

根據Hadley的評論,使用@keywords internal將使該功能對最終用戶不可見。詳細信息可在devtools的維基頁面找到here

8

在接受的答案中鏈接的維基不再討論@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) 
} 

鍵位:不包括@export和不包括@keywords internal

+0

這就是我正在尋找過去半個小時。謝謝@ arvi1000 – Veera 2016-12-04 10:03:54