| classFilter {SpaDES.core} | R Documentation |
Filter objects by class
Description
Based on https://stackoverflow.com/a/5158978/1380598.
Usage
classFilter(x, include, exclude, envir)
## S4 method for signature 'character,character,character,environment'
classFilter(x, include, exclude, envir)
## S4 method for signature 'character,character,character,missing'
classFilter(x, include, exclude)
## S4 method for signature 'character,character,missing,environment'
classFilter(x, include, envir)
## S4 method for signature 'character,character,missing,missing'
classFilter(x, include)
Arguments
x |
Character vector of object names to filter, possibly from |
include |
Class(es) to include, as a character vector. |
exclude |
Optional class(es) to exclude, as a character vector. |
envir |
The environment ins which to search for objects. Default is the calling environment. |
Value
Vector of object names matching the class filter.
Note
inherits() is used internally to check the object class,
which can, in some cases, return results inconsistent with is.
See https://stackoverflow.com/a/27923346/1380598.
These (known) cases are checked manually and corrected.
Author(s)
Alex Chubaty
Examples
## from local (e.g., function) environment
local({
e <- environment()
a <- list(1:10) # class `list`
b <- letters # class `character`
d <- stats::runif(10) # class `numeric`
f <- sample(1L:10L) # class `numeric`, `integer`
g <- lm( jitter(d) ~ d ) # class `lm`
h <- glm( jitter(d) ~ d ) # class `lm`, `glm`
classFilter(ls(), include=c("character", "list"), envir = e)
classFilter(ls(), include = "numeric", envir = e)
classFilter(ls(), include = "numeric", exclude = "integer", envir = e)
classFilter(ls(), include = "lm", envir = e)
classFilter(ls(), include = "lm", exclude = "glm", envir = e)
rm(a, b, d, e, f, g, h)
})
## from another environment (can be omitted if .GlobalEnv)
e = new.env(parent = emptyenv())
e$a <- list(1:10) # class `list`
e$b <- letters # class `character`
e$d <- stats::runif(10) # class `numeric`
e$f <- sample(1L:10L) # class `numeric`, `integer`
e$g <- lm( jitter(e$d) ~ e$d ) # class `lm`
e$h <- glm( jitter(e$d) ~ e$d ) # class `lm`, `glm`
classFilter(ls(e), include=c("character", "list"), envir = e)
classFilter(ls(e), include = "numeric", envir = e)
classFilter(ls(e), include = "numeric", exclude = "integer", envir = e)
classFilter(ls(e), include = "lm", envir = e)
classFilter(ls(e), include = "lm", exclude = "glm", envir = e)
rm(a, b, d, f, g, h, envir = e)
rm(e)
[Package SpaDES.core version 2.1.0 Index]