parse_expr

0th

Percentile

Parse R code.

These functions parse and transform text into R expressions. This is the first step to interpret or evaluate a piece of R code written by a programmer.

Usage
parse_expr(x)
parse_exprs(x)
parse_f(x, env = caller_env())
parse_fs(x, env = caller_env())
Arguments
x
Text containing expressions to parse_expr for parse_expr() and parse_exprs(). Can also be an R connection, for instance to a file. If the supplied connection is not open, it will be automatically closed and destroyed.
env
The environment for the formulas. Defaults to the context in which the parse_expr function was called. Can be any object with a as_env() method.
Details

parse_expr() returns one expression. If the text contains more than one expression (separated by colons or new lines), an error is issued. On the other hand parse_exprs() can handle multiple expressions. It always returns a list of expressions (compare to parse() which returns an expression vector). All functions also support R connections.

The versions prefixed with f_ return expressions quoted in formulas rather than raw expressions.

Value

parse_expr() returns a formula, parse_exprs() returns a list of formulas.

See Also

parse()

Aliases
  • parse_expr
  • parse_exprs
  • parse_f
  • parse_fs
Examples
# parse_expr() can parse_expr any R expression:
parse_expr("mtcars %>% dplyr::mutate(cyl_prime = cyl / sd(cyl))")

# A string can contain several expressions separated by ; or \n
parse_exprs("NULL; list()\n foo(bar)")

# The versions suffixed with _f return formulas:
parse_f("foo %>% bar()")
parse_fs("1; 2; mtcars")

# The env argument is passed to as_env(). It can be e.g. a string
# representing a scoped package environment:
parse_f("identity(letters)", env = empty_env())
parse_fs("identity(letters); mtcars", env = "base")


# You can also parse source files by passing a R connection. Let's
# create a file containing R code:
path <- tempfile("my-file.R")
cat("1; 2; mtcars", file = path)

# We can now parse it by supplying a connection:
parse_exprs(file(path))
Documentation reproduced from package rlang, version 0.0.0.9000, License: GPL-3

Community examples

Looks like there are no examples yet.