2016-10-19 6 views
3

특히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) 
} 

같은 선택적 매개 변수와 함수를 문서화 roxygen의 올바른 방법은 무엇입니까와 함수를 문서화하는 방법을해야하는 선택적 매개 변수 chambershgt에 대한 한 의견은? 인수는 선택 사항 인 경우

+0

내가 이해할 수 있는지 모르겠다. 그들을 위해'@ param' 항목을 추가하십시오 ...? – joran

+0

그리고 @usage를 생략하십시오. – rawr

+1

요점은 두 매개 변수 인'hgt'와'chambers'는 본질적으로 다른 것들과 달리 의미가 다릅니다. 그 중 하나는 '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. 좋은 R 코딩을 위해서는 각각 및 각각 함수 인수를 문서화해야합니다. 이 작업을 수행하지 않으면 Roxygen2는 패키지 검사 중에 경고를 발행합니다.