[Rd] Canonical S4 Method signature

Paul Roebuck roebuck at odin.mdacc.tmc.edu
Fri Feb 11 00:06:25 CET 2005


I have trouble finding applicable examples of S4 methods.
Could someone tell me the canonical method for a function
that takes either one or two arguments corresponding to
dimensions? So if vector output desired, only one argument
'n' would be provided. For matrix, two would be provided
corresponding to 'm' and 'n' in that order. And therein
lies the rub as I don't really want to require specifying
the argument name in order to do this.

foo(3)		# n = 3
foo(3, 4)	# m = 3, n = 4
foo(n = 3, 4)	# m = 4, n = 3

What I have come up with thus far is below but that reverses
the order for second case. I could swap them internally if
I knew whether they were specified by name.

setGeneric("foo", function(n, m = n) {
    cat("generic", match.call()[[1]], "\n")
    standardGeneric("foo")
})

One other alternative might be to just use dots for the
function argument and assign them names internally.

Similar functions in some package? Suggestions (besides
not using S4)?

TIA

----------------------------------------------------------
SIGSIG -- signature too long (core dumped)



More information about the R-devel mailing list