classFilter(x, include, exclude, envir) # S4 method for character,character,character,environment classFilter(x, include, exclude, envir) # S4 method for character,character,character,missing classFilter(x, include, exclude) # S4 method for character,character,missing,environment classFilter(x, include, envir) # S4 method for character,character,missing,missing classFilter(x, include)
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. |
Vector of object names matching the class filter.
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.
Alex Chubaty
if (FALSE) { ## from global 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")) classFilter(ls(), include = "numeric") classFilter(ls(), include = "numeric", exclude = "integer") classFilter(ls(), include = "lm") classFilter(ls(), include = "lm", exclude = "glm") rm(a, b, d, f, g, h) } ## 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 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)#> [1] "a" "b"#> [1] "d" "f"#> [1] "d"#> [1] "g" "h"#> [1] "g"