glue (version 1.2.0)

glue: Format and interpolate a string

Description

Expressions enclosed by braces will be evaluated as R code. Single braces can be inserted by doubling them.

Usage

glue_data(.x, ..., .sep = "", .envir = parent.frame(), .open = "{",
  .close = "}", .na = "NA", .transformer = identity_transformer)

glue(..., .sep = "", .envir = parent.frame(), .open = "{", .close = "}")

Arguments

.x

[listish] An environment, list or data frame used to lookup values.

...

[expressions] Expressions string(s) to format, multiple inputs are concatenated together before formatting.

.sep

[character(1): ‘""’] Separator used to separate elements.

.envir

[environment: parent.frame()] Environment to evaluate each expression in. Expressions are evaluated from left to right. If .x is an environment, the expressions are evaluated in that environment and .envir is ignored.

.open

[character(1): ‘{’] The opening delimiter. Doubling the full delimiter escapes it.

.close

[character(1): ‘}’] The closing delimiter. Doubling the full delimiter escapes it.

.na

[character(1): ‘NA’] Value to replace NA values with. If NULL missing values are propegated, that is an NA result will cause NA output. Otherwise the value is replaced by the value of .na.

.transformer

[function] A function taking three parameters code, envir and data used to transform the output of each block before during or after evaluation. For example transformers see vignette("transformers").

See Also

https://www.python.org/dev/peps/pep-0498/ and https://www.python.org/dev/peps/pep-0257 upon which this is based.

Examples

Run this code
# NOT RUN {
name <- "Fred"
age <- 50
anniversary <- as.Date("1991-10-12")
glue('My name is {name},',
  'my age next year is {age + 1},',
  'my anniversary is {format(anniversary, "%A, %B %d, %Y")}.')

# single braces can be inserted by doubling them
glue("My name is {name}, not {{name}}.")

# Named arguments can also be supplied
glue('My name is {name},',
  ' my age next year is {age + 1},',
  ' my anniversary is {format(anniversary, "%A, %B %d, %Y")}.',
  name = "Joe",
  age = 40,
  anniversary = as.Date("2001-10-12"))

# `glue_data()` is useful in magrittr pipes
library(magrittr)
mtcars %>% glue_data("{rownames(.)} has {hp} hp")

# Alternative delimiters can also be used if needed
one <- "1"
glue("The value of $e^{2\\pi i}$ is $<<one>>$.", .open = "<<", .close = ">>")
# }

Run the code above in your browser using DataCamp Workspace