Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/r-lib/evaluate

A version of eval for R that returns more information about what happened
https://github.com/r-lib/evaluate

evaluation parsing r r-package repl

Last synced: about 2 months ago
JSON representation

A version of eval for R that returns more information about what happened

Awesome Lists containing this project

README

        

# evaluate

[![R-CMD-check](https://github.com/r-lib/evaluate/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/r-lib/evaluate/actions/workflows/R-CMD-check.yaml)
[![CRAN status](https://www.r-pkg.org/badges/version/evaluate)](https://CRAN.R-project.org/package=evaluate)
[![Downloads from the RStudio CRAN mirror](https://cranlogs.r-pkg.org/badges/evaluate)](https://cran.r-project.org/package=evaluate)
[![Codecov test coverage](https://codecov.io/gh/r-lib/evaluate/branch/main/graph/badge.svg)](https://app.codecov.io/gh/r-lib/evaluate?branch=main)

evaluate provides tools that allow you to recreate the parsing, evaluation and
display of R code, with enough information that you can accurately recreate what
happens at the command line. Evaluate + replay works very similarly to
`source()`, but is written in such a way to make it easy to adapt for other
output formats, such as html or latex.

```R
library(evaluate)
```

There are three components to the `evaluate` package:

* `parse_all()`, a version of parse that keeps expressions with their original
source code, maintaining formatting and comments.
* `evaluate()`, which evaluates each expression produced by `parse_all()`,
tracking all output, messages, warnings, and errors as their occur, and
interleaving them in the correct order with the original source and value
of the expression.
* `replay()`, which outputs these pieces in a way that makes it look like you've
entered the code at the command line. This function also serves as a
template for other output formats.