Usage
## S3 method for class 'default}(name, class="default", definition, private=FALSE, protected=FALSE, static=FALSE, abstract=FALSE, trial=FALSE, deprecated=FALSE, envir=parent.frame(), overwrite=TRUE, conflict=c("warning", "error", "quiet"), createGeneric=TRUE, appendVarArgs=TRUE, enforceRCC=TRUE, ...)':
setMethodS3undefined
- name
{The name of the method.}
- class
{The class for which the method should be defined. If
class == "default"
(or class == "ANY"
) a function
with name name.default
will be created.}
- definition
{The method defintion.}
- private, protected
{If private=TRUE
, the method is declared
private. If protected=TRUE
, the method is declared protected.
In all other cases the method is declared public.}
- static
{If TRUE
this method is defined to be static,
otherwise not. Currently this has no effect expect as an indicator.}
- abstract
{If TRUE
this method is defined to be abstract,
otherwise not. Currently this has no effect expect as an indicator.}
- trial
{If TRUE
this method is defined to be a trial method,
otherwise not. A trial method is a method that is introduced to be
tried out and it might be modified, replaced or even removed in a
future release. Some people prefer to call trial versions, beta
version. Currently this has no effect expect as an indicator.}
- deprecated
{If TRUE
this method is defined to be deprecated,
otherwise not. Currently this has no effect expect as an indicator.}
- envir
{The environment for where this method should be stored.}
- overwrite
{If TRUE
an already existing method with the same
name (and of the same class) will be overwritten, otherwise not.}
- conflict
{If a method already exists with the same name (and of
the same class), different actions can be taken. If "error"
,
an exception will be thrown and the method will not be created.
If "warning"
, a warning
will be given and the method will
be created, otherwise the conflict will be passed unnotice.}
- createGeneric
{If TRUE
, a generic S3/UseMethod function is
defined for this method.}
- enforceRCC
{If TRUE
, only class names following the R Coding
Convention is accepted. If the RCC is violated an RccViolationException
is thrown.}
- appendVarArgs
{If TRUE
, argument ...
is added with a
warning, if missing. For special methods such as $
and
[[
, this is never done.
This will increase the chances that the method is consistent with a
generic function with many arguments and/or argument ...
.}
- ...
{Not used.}
######################################################################
# Example 1
######################################################################
setMethodS3("foo", "default", function(x, ...) {
cat("In default foo():
");
print(x, ...);
})
setMethodS3("foo", "character", function(s, ...) {
cat("In foo() for class 'character':
");
print(s, ...);
})
# The generic function is automatically created!
print(foo)
foo(123)
foo("123")
######################################################################
# Example 2
#
# Assume that in a loaded package there is already a function bar(),
# but you also want to use the name 'bar' for the character string.
# It may even be the case that you do not know of the other package,
# but your users do!
######################################################################
# bar() in other package
bar <- function(x, y, ...) {
cat("In bar() of 'other' package.
");
}
# Your defintion; will redefine bar() above to bar.default().
setMethodS3("bar", "character", function(object, ...) {
cat("In bar() for class 'character':
");
print(object, ...);
})
bar(123)
bar("123")
For a complete example see help(Object).
To define a class, see setConstructorS3
().
For a thorough example of how to use this method see Object
.
For information about the R Coding Conventions, see
RccViolationException
.
For more information about S3/UseMethod, see UseMethod
().
[object Object]
programming
methods