2016-10-19 49 views
3

什麼是roxygen記錄功能與像Roxygen2:帶有可選參數

#' @name dbh2vol 
#' @usage dbh2vol(dbh,ipft) 
#' @description This is an allometric function to return the tree volume 
#' @param dbh diameter at breast height 
#' @param ipft PFT 
#' @return vol volume 
#' @export 

dbh2vol <- function(dbh,ipft,...,hgt, chambers = FALSE){ 

    if (missing(hgt)) hgt = other_function (dbh, ipft) 
    vol = hgt * dbh^pft$vol[ipft] 
    if (chambers) vol = vol * 2 

    return(vol) 
} 

尤其是可選參數的正確方法是文檔的功能應該如何在可選參數chambershgt一個評論?

+0

我不知道我明白...爲他們添加'@ param'條目...? – joran

+0

並忽略@usage – rawr

+1

好的重點是,兩個參數'hgt'和'chamber'與其他參數在本質上是不同的,因爲它們是可選的。其中一個設置爲「TRUE」,另一個設置爲外部功能。什麼是正確的方式告知讀者這些文件? – Manfredo

回答

0

我想補充一個@param場爲每一個參數,並明確寫入如果一個參數是可選的,就像這樣:

#' @name dbh2vol 
#' @usage dbh2vol(dbh,ipft) 
#' @description This is an allometric function to return the tree volume 
#' @param dbh diameter at breast height 
#' @param ipft PFT 
#' 
#' @param chambers optional parameter that is blah-blah... FALSE by default 
#' @param hgt function to do this and that (optional). 
#'    If not provided, \code{other_function(dbh, ipft)} is used. 
#' 
#' @return vol volume 
#' @export 

dbh2vol <- function(dbh,ipft,...,hgt, chambers = FALSE){ 

    if (missing(hgt)) hgt = other_function (dbh, ipft) 
    vol = hgt * dbh^pft$vol[ipft] 
    if (chambers) vol = vol * 2 

    return(vol) 
} 

如果你的用戶讀取文檔,那麼他/她就知道,這些參數是可選。如果不是的話,他/她會通過省略這些論據來通過實驗來弄明白。

希望這會有所幫助。

P.S.良好的R編碼實踐要求您記錄每個函數參數。如果您不這樣做,Roxygen2會在包裹檢查過程中發出警告。