Manage R Environments Better

Provides a small set of functions for managing R environments, with defaults designed to encourage usage patterns that scale well to larger code bases. It provides: import_from(), a flexible way to assign bindings that defaults to the current environment; include(), a vectorized alternative to base::source() that also default to the current environment; and attach_eval() and attach_source(), a way to evaluate expressions in attached environments. Together, these (and other) functions pair to provide a robust alternative to base::library() and base::source().


envir

envir is a small R package with a handful of functions designed for managing R environments.

The main exported functions are:

  • import_from(x, ...): Import objects from x into the current environment. x can be:

    • A package name
    • Filepaths to R scripts
    • Any object with names and [[ methods.

    Usage example:

    import_from(magrittr, `%<>%`, `%>%`)
    import_from(dplyr) # all exported functions
    import_from("my_script.R", useful_function)
    

See ?import_from for extended usage examples.

  • include(): A vectorized wrapper around base::sys.source that defaults to sourcing in the current frame.

  • attach_source() and attach_eval(): Evaluate an R script or expression in an attached environment

  • within() S3 methods for R environments.

Installation

You can install the released version of envir from CRAN with:

install.packages("envir")

Or install the development version with:

if (!requireNamespace("remotes", quietly = TRUE)) 
  install.packages("remotes")
remotes::install_github("t-kalinowski/envir")

Related work

R has excellent support for managing environments already, but some of the defaults encourage usage patterns that don't scale well to larger code bases.

Other solutions developed for managing R environments:

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("envir")

0.3.0 by Tomasz Kalinowski, 3 years ago


https://t-kalinowski.github.io/envir/


Report a bug at https://github.com/t-kalinowski/envir/issues


Browse source code at https://github.com/cran/envir


Authors: Tomasz Kalinowski [aut, cre]


Documentation:   PDF Manual  


GPL-3 license



Suggested by guildai.


See at CRAN