# File src/library/base/R/zzz.R
# Part of the R package, https://www.R-project.org
#
# Copyright (C) 1995-2015 The R Core Team
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# A copy of the GNU General Public License is available at
# https://www.R-project.org/Licenses/
## top-level assignments that need to be copied to baseloader.R
as.numeric <- as.double
is.name <- is.symbol
## extracted from existing NAMESPACE files in Dec 2003
.knownS3Generics <- local({
## include the S3 group generics here
baseGenerics <- c("Math", "Ops", "Summary", "Complex",
"as.character", "as.data.frame", "as.environment", "as.matrix", "as.vector",
"cbind", "labels", "print", "rbind", "rep", "seq", "seq.int",
"solve", "summary", "t")
utilsGenerics <- c("edit", "str")
graphicsGenerics <- c("contour", "hist", "identify", "image",
"lines", "pairs", "plot", "points", "text")
statsGenerics <- c("add1", "AIC", "anova", "biplot", "coef",
"confint", "deviance", "df.residual", "drop1", "extractAIC",
"fitted", "formula", "logLik", "model.frame", "model.matrix",
"predict", "profile", "qqnorm", "residuals", "se.contrast",
"terms", "update", "vcov")
tmp <- rep.int(c("base", "utils", "graphics", "stats"),
c(length(baseGenerics), length(utilsGenerics),
length(graphicsGenerics), length(statsGenerics)))
names(tmp) <-
c(baseGenerics, utilsGenerics, graphicsGenerics, statsGenerics)
tmp
})
###--- Arguments (for printing and QC analysis) for the .Primitive functions ----
## 1) .ArgsEnv : The non-generics .Primitives :
.ArgsEnv <- new.env(hash = TRUE, parent = emptyenv())
assign("%*%", function(x, y) NULL, envir = .ArgsEnv)
assign(".C", function(.NAME, ..., NAOK = FALSE, DUP = TRUE, PACKAGE,
ENCODING) NULL,
envir = .ArgsEnv)
assign(".Fortran",
function(.NAME, ..., NAOK = FALSE, DUP = TRUE, PACKAGE, ENCODING) NULL,
envir = .ArgsEnv)
assign(".Call", function(.NAME, ..., PACKAGE) NULL, envir = .ArgsEnv)
assign(".Call.graphics", function(.NAME, ..., PACKAGE) NULL, envir = .ArgsEnv)
assign(".External", function(.NAME, ..., PACKAGE) NULL, envir = .ArgsEnv)
assign(".External2", function(.NAME, ..., PACKAGE) NULL, envir = .ArgsEnv)
assign(".External.graphics", function(.NAME, ..., PACKAGE) NULL,
envir = .ArgsEnv)
assign(".Internal", function(call) NULL, envir = .ArgsEnv)
assign(".Primitive", function(name) NULL, envir = .ArgsEnv)
assign(".isMethodsDispatchOn", function(onOff = NULL) NULL, envir = .ArgsEnv)
assign(".primTrace", function(obj) NULL, envir = .ArgsEnv)
assign(".primUntrace", function(obj) NULL, envir = .ArgsEnv)
assign(".subset", function(x, ...) NULL, envir = .ArgsEnv)
assign(".subset2", function(x, ...) NULL, envir = .ArgsEnv)
assign("UseMethod", function(generic, object) NULL, envir = .ArgsEnv)
assign("as.call", function(x) NULL, envir = .ArgsEnv)
assign("attr", function(x, which, exact = FALSE) NULL, envir = .ArgsEnv)
assign("attr<-", function(x, which, value) NULL, envir = .ArgsEnv)
assign("attributes", function(obj) NULL, envir = .ArgsEnv)
assign("attributes<-", function(obj, value) NULL, envir = .ArgsEnv)
assign("baseenv", function() NULL, envir = .ArgsEnv)
assign("browser",
function(text="", condition=NULL, expr = TRUE, skipCalls = 0L) NULL,
envir = .ArgsEnv)
assign("call", function(name, ...) NULL, envir = .ArgsEnv)
assign("class", function(x) NULL, envir = .ArgsEnv)
assign("class<-", function(x, value) NULL, envir = .ArgsEnv)
assign(".cache_class", function(class, extends) NULL, envir = .ArgsEnv)
assign("emptyenv", function() NULL, envir = .ArgsEnv)
assign("enc2native", function(x) NULL, envir = .ArgsEnv)
assign("enc2utf8", function(x) NULL, envir = .ArgsEnv)
assign("environment<-", function(fun, value) NULL, envir = .ArgsEnv)
assign("expression", function(...) NULL, envir = .ArgsEnv)
assign("forceAndCall", function(n, FUN, ...) NULL, envir = .ArgsEnv)
assign("gc.time", function(on = TRUE) NULL, envir = .ArgsEnv)
assign("globalenv", function() NULL, envir = .ArgsEnv)
assign("interactive", function() NULL, envir = .ArgsEnv)
assign("invisible", function(x) NULL, envir = .ArgsEnv)
assign("is.atomic", function(x) NULL, envir = .ArgsEnv)
assign("is.call", function(x) NULL, envir = .ArgsEnv)
assign("is.character", function(x) NULL, envir = .ArgsEnv)
assign("is.complex", function(x) NULL, envir = .ArgsEnv)
assign("is.double", function(x) NULL, envir = .ArgsEnv)
assign("is.environment", function(x) NULL, envir = .ArgsEnv)
assign("is.expression", function(x) NULL, envir = .ArgsEnv)
assign("is.function", function(x) NULL, envir = .ArgsEnv)
assign("is.integer", function(x) NULL, envir = .ArgsEnv)
assign("is.language", function(x) NULL, envir = .ArgsEnv)
assign("is.list", function(x) NULL, envir = .ArgsEnv)
assign("is.logical", function(x) NULL, envir = .ArgsEnv)
assign("is.name", function(x) NULL, envir = .ArgsEnv)
assign("is.null", function(x) NULL, envir = .ArgsEnv)
assign("is.object", function(x) NULL, envir = .ArgsEnv)
assign("is.pairlist", function(x) NULL, envir = .ArgsEnv)
assign("is.raw", function(x) NULL, envir = .ArgsEnv)
assign("is.recursive", function(x) NULL, envir = .ArgsEnv)
assign("is.single", function(x) NULL, envir = .ArgsEnv)
assign("is.symbol", function(x) NULL, envir = .ArgsEnv)
assign("isS4", function(object) NULL, envir = .ArgsEnv)
assign("list", function(...) NULL, envir = .ArgsEnv)
assign("lazyLoadDBfetch", function(key, file, compressed, hook) NULL,
envir = .ArgsEnv)
assign("missing", function(x) NULL, envir = .ArgsEnv)
assign("nargs", function() NULL, envir = .ArgsEnv)
assign("nzchar", function(x, keepNA=FALSE) NULL, envir = .ArgsEnv)
assign("oldClass", function(x) NULL, envir = .ArgsEnv)
assign("oldClass<-", function(x, value) NULL, envir = .ArgsEnv)
assign("on.exit", function(expr = NULL, add = FALSE) NULL, envir = .ArgsEnv)
assign("pos.to.env", function(x) NULL, envir = .ArgsEnv)
assign("proc.time", function() NULL, envir = .ArgsEnv)
assign("quote", function(expr) NULL, envir = .ArgsEnv)
assign("retracemem", function(x, previous = NULL) NULL, envir = .ArgsEnv)
assign("seq_along", function(along.with) NULL, envir = .ArgsEnv)
assign("seq_len", function(length.out) NULL, envir = .ArgsEnv)
assign("standardGeneric", function(f, fdef) NULL, envir = .ArgsEnv)
assign("storage.mode<-", function(x, value) NULL, envir = .ArgsEnv)
assign("substitute", function(expr, env) NULL, envir = .ArgsEnv)
assign("switch", function(EXPR, ...) NULL, envir = .ArgsEnv)
assign("tracemem", function(x) NULL, envir = .ArgsEnv)
assign("unclass", function(x) NULL, envir = .ArgsEnv)
assign("untracemem", function(x) NULL, envir = .ArgsEnv)
## 2) .GenericArgsEnv : The generic .Primitives :
.S3PrimitiveGenerics <-
c("anyNA", "as.character", "as.complex", "as.double", "as.environment",
"as.integer", "as.logical", "as.numeric", "as.raw",
"c", "dim", "dim<-", "dimnames", "dimnames<-",
"is.array", "is.finite",
"is.infinite", "is.matrix", "is.na", "is.nan", "is.numeric",
"length", "length<-", "levels<-", "names", "names<-", "rep",
"seq.int", "xtfrm")
.GenericArgsEnv <- local({
env <- new.env(hash = TRUE, parent = emptyenv())
## those with different arglists are overridden below
for(f in .S3PrimitiveGenerics) {
fx <- function(x) {}
body(fx) <- substitute(UseMethod(ff), list(ff=f))
environment(fx) <- .BaseNamespaceEnv
assign(f, fx, envir = env)
}
## now add the group generics
## round, signif, log, trunc are handled below
fx <- function(x) {}
for(f in c("abs", "sign", "sqrt", "floor", "ceiling",
"exp", "expm1", "log1p", "log10", "log2",
"cos", "sin", "tan", "acos", "asin", "atan", "cosh", "sinh",
"tanh", "acosh", "asinh", "atanh",
"cospi", "sinpi", "tanpi",
"gamma", "lgamma", "digamma", "trigamma",
"cumsum", "cumprod", "cummax", "cummin")) {
body(fx) <- substitute(UseMethod(ff), list(ff=f))
environment(fx) <- .BaseNamespaceEnv
assign(f, fx, envir = env)
}
## ! is unary and handled below
fx <- function(e1, e2) {}
for(f in c("+", "-", "*", "/", "^", "%%", "%/%", "&", "|",
"==", "!=", "<", "<=", ">=", ">")) {
body(fx) <- substitute(UseMethod(ff), list(ff=f))
environment(fx) <- .BaseNamespaceEnv
assign(f, fx, envir = env)
}
for(f in c("all", "any", "sum", "prod", "max", "min", "range")) {
fx <- function(..., na.rm = FALSE) {}
body(fx) <- substitute(UseMethod(ff), list(ff=f))
environment(fx) <- .BaseNamespaceEnv
assign(f, fx, envir = env)
}
for(f in c("Arg", "Conj", "Im", "Mod", "Re")) {
fx <- function(z) {}
body(fx) <- substitute(UseMethod(ff), list(ff=f))
environment(fx) <- .BaseNamespaceEnv
assign(f, fx, envir = env)
}
fx <- function(x, recursive = FALSE) UseMethod("anyNA")
environment(fx) <- .BaseNamespaceEnv
assign("anyNA", fx, envir = env)
env
})
### do these outside to get the base namespace as the environment.
assign("!", function(x) UseMethod("!"), envir = .GenericArgsEnv)
assign("as.character", function(x, ...) UseMethod("as.character"),
envir = .GenericArgsEnv)
assign("as.complex", function(x, ...) UseMethod("as.complex"),
envir = .GenericArgsEnv)
assign("as.double", function(x, ...) UseMethod("as.double"),
envir = .GenericArgsEnv)
assign("as.integer", function(x, ...) UseMethod("as.integer"),
envir = .GenericArgsEnv)
assign("as.logical", function(x, ...) UseMethod("as.logical"),
envir = .GenericArgsEnv)
#assign("as.raw", function(x) UseMethod("as.raw"), envir = .GenericArgsEnv)
assign("c", function(..., recursive = FALSE) UseMethod("c"),
envir = .GenericArgsEnv)
#assign("dimnames", function(x) UseMethod("dimnames"), envir = .GenericArgsEnv)
assign("dim<-", function(x, value) UseMethod("dim<-"), envir = .GenericArgsEnv)
assign("dimnames<-", function(x, value) UseMethod("dimnames<-"),
envir = .GenericArgsEnv)
assign("length<-", function(x, value) UseMethod("length<-"),
envir = .GenericArgsEnv)
assign("levels<-", function(x, value) UseMethod("levels<-"),
envir = .GenericArgsEnv)
assign("log", function(x, base=exp(1)) UseMethod("log"),
envir = .GenericArgsEnv)
assign("names<-", function(x, value) UseMethod("names<-"),
envir = .GenericArgsEnv)
assign("rep", function(x, ...) UseMethod("rep"), envir = .GenericArgsEnv)
assign("round", function(x, digits=0) UseMethod("round"),
envir = .GenericArgsEnv)
assign("seq.int", function(from, to, by, length.out, along.with, ...)
UseMethod("seq.int"), envir = .GenericArgsEnv)
assign("signif", function(x, digits=6) UseMethod("signif"),
envir = .GenericArgsEnv)
assign("trunc", function(x, ...) UseMethod("trunc"), envir = .GenericArgsEnv)
#assign("xtfrm", function(x) UseMethod("xtfrm"), envir = .GenericArgsEnv)
## make this the same object as as.double
assign("as.numeric", get("as.double", envir = .GenericArgsEnv),
envir = .GenericArgsEnv)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.