[Rd] [Q] Get formal arguments of my implemented S4 method

Michael Lawrence lawrence.michael at gene.com
Wed Jan 28 18:28:22 CET 2015


Would you please clarify your exact use case?

Thanks,
Michael

On Wed, Jan 28, 2015 at 9:02 AM, Roebuck,Paul L <PLRoebuck at mdanderson.org>
wrote:

> Interrogating some (of my own) code in another package.
>
> >norm.meth <- getMethod("normalize", "MatrixLike")
> >message("str(norm.meth)")
> >str(norm.meth)
>
> >message("show(norm.meth at .Data)")
> >show(norm.meth at .Data)
>
>
> Last show() displays this:
>
> function (object, ...)
> {
>     .local <- function (object, method = c("median", "vs", "tukey"),
>         calc.medians = TRUE, sweep.cols = calc.medians,
>         recalc.after.sweep = sweep.cols, ...)
>     {
>         .do_normalize(object,
>             method = match.arg(method),
>             calc.medians = calc.medians,
>             sweep.cols = sweep.cols,
>             recalc.after.sweep = recalc.after.sweep,
>             ...)
>     }
>     .local(object, ...)
> }
>
>
> Desire to be able to access formals() for the .local() function definition,
> not the generic one. Have seen information desired available via "defined"
> slot of returned 'MethodDefinition' object, but not using the code below.
>
>
>
> ====================
>
> library(methods)
>
> if (!isGeneric("normalize")) {
>     ## Other packages also define this generic...
>     setGeneric("normalize",
>                function(object, ...) standardGeneric("normalize"))
> }
>
> setClassUnion("MatrixLike", c("matrix", "data.frame"))
>
> .do_normalize <- function(concs,
>                           method,
>                           calc.medians,
>                           sweep.cols,
>                           recalc.after.sweep,
>                           ...) {
>     message("internal routine called!")
>     NULL
> }
>
> setMethod("normalize", signature(object="MatrixLike"),
>           function(object,
>                    method=c("median", "vs", "tukey"),
>                    calc.medians=TRUE,
>                    sweep.cols=calc.medians,
>                    recalc.after.sweep=sweep.cols,
>                    ...) {
>
>     .do_normalize <- function(object,
>                             method=match.arg(method),
>                             calc.medians=calc.medians,
>                             sweep.cols=sweep.cols,
>                             recalc.after.sweep=recalc.after.sweep,
>                             ...)
> }
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>

	[[alternative HTML version deleted]]



More information about the R-devel mailing list