str_interp

0th

Percentile

String interpolation.

String interpolation is a useful way of specifying a character string which depends on values in a certain environment. It allows for string creation which is easier to read and write when compared to using e.g. paste() or sprintf(). The (template) string can include expression placeholders of the form ${expression} or $[format]{expression}, where expressions are valid R expressions that can be evaluated in the given environment, and format is a format specification valid for use with sprintf().

Keywords
internal
Usage
str_interp(string, env = parent.frame())
Arguments
string

A template character string. This function is not vectorised: a character vector will be collapsed into a single string.

env

The environment in which to evaluate the expressions.

Value

An interpolated character string.

See Also

str_glue() and str_glue_data() for alternative approaches to the same problem.

Aliases
  • str_interp
Examples
# NOT RUN {
# Using values from the environment, and some formats
user_name <- "smbache"
amount <- 6.656
account <- 1337
str_interp("User ${user_name} (account $[08d]{account}) has $$[.2f]{amount}.")

# Nested brace pairs work inside expressions too, and any braces can be
# placed outside the expressions.
str_interp("Works with } nested { braces too: $[.2f]{{{2 + 2}*{amount}}}")

# Values can also come from a list
str_interp(
  "One value, ${value1}, and then another, ${value2*2}.",
  list(value1 = 10, value2 = 20)
)

# Or a data frame
str_interp(
  "Values are $[.2f]{max(Sepal.Width)} and $[.2f]{min(Sepal.Width)}.",
  iris
)

# Use a vector when the string is long:
max_char <- 80
str_interp(c(
  "This particular line is so long that it is hard to write ",
  "without breaking the ${max_char}-char barrier!"
))
# }
Documentation reproduced from package stringr, version 1.3.1, License: GPL-2 | file LICENSE

Community examples

Looks like there are no examples yet.