[Rd] Canonical S4 Method signature

From: Paul Roebuck <roebuck_at_odin.mdacc.tmc.edu>
Date: Fri 11 Feb 2005 - 10:06:25 EST


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)

R-devel@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel Received on Fri Feb 11 09:25:42 2005

This archive was generated by hypermail 2.1.8 : Fri 18 Mar 2005 - 09:02:50 EST