[Bioc-devel] problem with documentation of setMethod with different signatures

web working webwork|ng @end|ng |rom po@teo@de
Thu Feb 14 10:07:52 CET 2019


Hi,

I am struggling a bit with a R generic function. I build a generic and 
set two implementations of the generic with two different signatures as 
input. Both implementations of the generic produce the same output but 
have a different input. During devtools::check() I get the following error:

❯ checking Rd \usage sections ... WARNING
   Duplicated \argument entries in documentation object 'methodA':
     ‘x’ ‘size’

  Functions with \usage entries need to have the appropriate \alias
   entries, and all their arguments documented.
   The \usage entries must correspond to syntactically valid R code.
   See chapter ‘Writing R documentation files’ in the ‘Writing R
   Extensions’ manual.


The original functions are complex so here are some dummy methods:


#' methodA methods generic
#' @rdname methodA-methods
#' @export
#'
setGeneric("methodA", function(x, size = 1000)
   standardGeneric("methodA"))


#' methodA method for \code{GRanges} input
#'
#' @param x a \code{GRanges} object
#' @param size a \code{numeric} vector
#'
#' @import GenomicRanges
#' @return a \code{list} object
#' @rdname methodA-methods
#' @export
#' @examples
#' library(GenomicRanges)
#' dat.GRanges <- GRanges(seqnames=c(rep("chr1", 5), rep("chr2", 5)),
#' IRanges(start = rep(c(10000, 10000, 55000, 55000, 150000), 2),
#' end = rep(c(20000, 20000, 70000, 70000, 600000), 2)))
#' out.list <- methodA(x = dat.GRanges, size = length(dat.GRanges))
#'
setMethod(methodA, signature(x="GRanges"),
           function(x, size = 1000){
             s <- start(x)
             return(list(s, size))
           })



#' methodA method for named \code{integer} input
#'
#' @param x a \code{integer} vector
#' @param size a \code{numeric} vector
#'
#' @return a \code{list} object
#' @export
#' @rdname methodA-methods
#' @examples
#' dat <- 1:20
#' out.list <- methodA(x = dat, size = length(dat))
setMethod(methodA, signature(x="integer"),
           function(x, size = 1000){
             return(list(x, size))
           })

The error above sounds absolute understandable for me, but I do not have 
a solution for this. Maybe using a generic is not the way to do this here?

Tobias



More information about the Bioc-devel mailing list