Many R-internal functions are generic and allow methods to be written for.
The following primitive and internal functions are generic,
i.e., you can write methods
for them:
length
,
length<-
,
dimnames
,
dimnames<-
,
dim
,
dim<-
,
names
,
names<-
,
levels<-
,
as.character
,
as.complex
,
as.double
,
as.integer
,
as.logical
,
as.raw
,
as.vector
,
is.array
,
is.matrix
,
is.na
,
is.nan
,
is.numeric
,
rep
,
seq.int
(which dispatches methods for "seq"
)
and xtfrm
In addition, is.name
is a synonym for is.symbol
and
dispatches methods for the latter. Similarly, as.numeric
is a synonym for as.double
and dispatches methods for the
latter, i.e., S3 methods are for as.double
, whereas S4 methods
are to be written for as.numeric
.
Note that all of the group generic functions are also internal/primitive and allow methods to be written for them.
.S3PrimitiveGenerics
is a character vector listing the
primitives which are internal generic and not group generic.
Currently as.vector
, cbind
,
rbind
and unlist
are the internal
non-primitive functions which are internally generic.
For efficiency, internal dispatch only occurs on objects, that
is those for which is.object
returns true.
methods
for the methods which are available.