当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R stringr str_interp 字符串插值


[Superseded]

str_interp()str_glue() 取代。

字符串插值是指定字符串的有用方法,该字符串取决于特定环境中的值。它允许创建字符串,与使用例如相比,它更容易读写。 paste()sprintf() 。 (模板)字符串可以包含 ${expression}$[format]{expression} 形式的表达式占位符,其中表达式是可以在给定环境中计算的有效 R 表达式,而 format 是可与 sprintf() 一起使用的有效格式规范。

用法

str_interp(string, env = parent.frame())

参数

string

模板字符串。此函数未矢量化:字符向量将折叠为单个字符串。

env

评估表达式的环境。

内插字符串。

也可以看看

str_glue()str_glue_data() 用于解决同一问题的替代方法。

作者

斯特凡·米尔顿·巴奇

例子


# 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}.")
#> [1] "User smbache (account 00001337) has $6.66."

# 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}}}")
#> [1] "Works with } nested { braces too: 26.62"

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

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

# 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!"
))
#> [1] "This particular line is so long that it is hard to write without breaking the 80-char barrier!"
源代码:R/interp.R

相关用法


注:本文由纯净天空筛选整理自Hadley Wickham等大神的英文原创作品 String interpolation。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。