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

Michael Lawrence lawrence.michael at gene.com
Thu Jan 29 03:37:06 CET 2015


At this point I would just due:

formals(body(method)[[2L]])

At some point we need to figure out what to do with this .local() confusion.




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

> I'm attempting to reflect the information for use with corresponding
> fields in GUI (in a different package), to provide default values,
> argname as key for UI label lookups, etc.
>
> So I want something much more like the formals of the implementation:
>
> {
>     "object",
>     "method":             c("median", "vs", "tukey"),
>     "calc.medians":       TRUE,
>     "sweep.cols":         calc.medians,
>     "recalc.after.sweep": sweep.cols,
>     "Š"
> }
>
> not those of the generic:
>
> {
>     "object",
>     "Š"
> }
>
>
> From:  Michael Lawrence <lawrence.michael at gene.com>
> Date:  Wednesday, January 28, 2015 11:28 AM
> To:  "Roebuck,Paul L" <PLRoebuck at mdanderson.org>
> Cc:  R-devel <r-devel at r-project.org>
> Subject:  Re: [Rd] [Q] Get formal arguments of my implemented S4 method
>
>
> 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