2017-03-24 5 views
0

내 S3 메디안 방법의 정의가 R 3.4.0의 새로운 중간 일반과 일치하도록 Bolstad 패키지를 업데이트하라는 메시지가 표시되었습니다. 이 방법은 ...을 처리 할 수 ​​있어야합니다. 괜찮 으면 좋겠지 만 roxygen2과 함께 작동해야합니다. 여기 내 함수 정의 등 :R 3.4.0 메디안 방법과 roxygen2

#' Median generic 
#' 
#' @param x an object. 
#' @param na.rm Ideally if \code{TRUE} then missing values will be removed, but not currently used. 

#' @param \ldots [>=R3.4.0 only] Not currently used. 
#' @details If \code{x} is an object of class \code{Bolstad} then the posterior 
#' median of the parameter of interest will be calculated. 
#' @author James Curran 
#' @method median Bolstad 
#' @export 
median.Bolstad = 
if(is.na(match("...", names(formals(median))))) { 
    function(x, na.rm = FALSE) { 
    return(quantile(x, probs = 0.5)) 
    } 
}else{ 
    function(x, na.rm = FALSE, ...) { 
    return(quantile(x, probs = 0.5)) 
    } 
} 

이 조건 정의는 괜찮 컴파일 것 같다,하지만 난 R의 (STABLE) 버전을 통해 그것을 실행하면 사용이 허용되지 않았기 때문에, 나는 코드 불일치 경고를 얻을 수있다 ..., 즉

Codoc mismatches from documentation object 'median.Bolstad': 
median.Bolstad 
    Code: function(x, na.rm = FALSE, ...) 
    Docs: function(x, na.rm = FALSE) 
    Argument names in code not in docs: 
    ... 

감사합니다.

+0

'@param \ ldots' 대신'@param ... '을 시도해 보셨습니까? –

+0

시도했지만 불행히도 차이는 없었습니다. ( –

+0

내 생각에 적절한 함수 서명이 필요합니다. : median.Bolstad <- function (다른 인수, ...). – Helix123

답변

0

CRAN에 올라온 해결책은 아래에 나와 있습니다 (Kurt Hornik이 보낸 편지를 기반으로). 그러나 roxygen2이 중간 값 함수에 대한 도움말 파일을 생성하지 않는다는 단점도 있습니다.

#' Median generic 
#' 
#' @param x an object. 
#' @param na.rm Ideally if \code{TRUE} then missing values will be removed, but not currently used. 
#' @param ... [>=R3.4.0 only] Not currently used. 
#' @details If \code{x} is an object of class \code{Bolstad} then the posterior 
#' median of the parameter of interest will be calculated. 
#' @author James Curran 
#' @method median Bolstad 
if(is.na(match("...", names(formals(median))))) { 
    median.Bolstad = function(x, na.rm = FALSE) { 
    return(quantile(x, probs = 0.5)) 
    } 
}else{ 
    median.Bolstad = function(x, na.rm = FALSE, ...) { 
    return(quantile(x, probs = 0.5)) 
    } 
}