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@.Data)")
>show(norm.meth@.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@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to