2017-03-24 7 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のdevelのバージョンによってそれを実行するときに使用量がために許可されていないので、私はコードの不一致警告が表示されます...、すなわち

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)) 
    } 
} 
関連する問題