Rev 70340 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
% File src/library/utils/man/isS3method.Rd% Part of the R package, https://www.R-project.org% Copyright 1995-2016 R Core Team% Distributed under GPL 2 or later\name{isS3method}\alias{isS3method}\title{Is 'method' the Name of an S3 Method?}\description{Checks if \code{method} is the name of a valid / registered S3method. Alternatively, when \code{f} and \code{class} are specified,it is checked if \code{f} is the name of an S3 generic function and\code{paste(f, class, sep=".")} is a valid S3 method.}\usage{isS3method(method, f, class, envir = parent.frame())}\arguments{\item{method}{a character string, typically of the form\code{"<fn>.<class>"}. If omitted, \code{f} and \code{class} haveto be specified instead.}\item{f}{optional character string, typically specifying an S3 genericfunction. Used, when \code{method} is not specified.}\item{class}{optional character string, typically specifying an S3class name. Used, when \code{method} is not specified.}\item{envir}{the \code{\link{environment}} in which the method and itsgeneric are searched first, as in \code{\link{getS3method}()}.}}%% \details{%% }\value{\code{\link{logical}} \code{TRUE} or \code{FALSE}}\seealso{\code{\link{methods}}, \code{\link{getS3method}}.}\examples{isS3method("t") # FALSE - it is an S3 genericisS3method("t.default") # TRUEisS3method("t.ts") # TRUEisS3method("t.test") # FALSEisS3method("t.data.frame")# TRUEisS3method("t.lm") # FALSE - not existingisS3method("t.foo.bar") # FALSE - not existing## S3 methods with "4 parts" in their name:ff <- c("as.list", "as.matrix", "is.na", "row.names", "row.names<-")for(m in ff) if(isS3method(m)) stop("wrongly declared an S3 method: ", m)(m4 <- paste(ff, "data.frame", sep="."))for(m in m4) if(!isS3method(m)) stop("not an S3 method: ", m)\dontshow{stopifnot(!isS3method("t"), !isS3method("t.test"), !isS3method("qr.coef"), !isS3method("sort.list"),isS3method("t.default"), isS3method("t.ts"), isS3method("t.data.frame"),!isS3method("t.lm"), !isS3method("t.foo.bar"))}}\keyword{methods}