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


R glue glue 格式化并插入字符串


用大括号括起来的表达式将被计算为 R 代码。长字符串按行断开并连接在一起。第一行和最后一行的前导空格和空行将被自动修剪。

用法

glue_data(
  .x,
  ...,
  .sep = "",
  .envir = parent.frame(),
  .open = "{",
  .close = "}",
  .na = "NA",
  .null = character(),
  .comment = "#",
  .literal = FALSE,
  .transformer = identity_transformer,
  .trim = TRUE
)

glue(
  ...,
  .sep = "",
  .envir = parent.frame(),
  .open = "{",
  .close = "}",
  .na = "NA",
  .null = character(),
  .comment = "#",
  .literal = FALSE,
  .transformer = identity_transformer,
  .trim = TRUE
)

参数

.x

[listish]
用于查找值的环境、列表或 DataFrame 。

...

[expressions]
未命名的参数被视为要格式化的表达式字符串。多个输入在格式化之前连接在一起。命名参数被视为可用于替换的临时变量。

.sep

[character(1):‘“”’]
分隔符用于分隔元素。

.envir

[environmentparent.frame()]
计算每个表达式的环境。表达式从左到右计算。如果.x是一个环境,表达式在该环境中求值并且.envir被忽略。如果NULL通过了,就相当于emptyenv().

.open

[character(1): '\{']
开始分隔符。将完整分隔符加倍即可逃脱它。

.close

[character(1): ‘\}’]
结束分隔符。将完整分隔符加倍即可逃脱它。

.na

[character(1):‘不适用’]
要替换的值NA值与.如果NULL缺失值被传播,即NA结果会导致NA输出。否则该值将被替换为.na.

.null

[character(1): ‘character()’]
用于替换 NULL 值的值。如果character()整个输出是character().如果NULL所有 NULL 值都会被删除(如paste0())。否则该值将被替换为.null.

.comment

[character(1): ‘#’]
用作注释字符的值。

.literal

[boolean(1): '错误的']
解析表达式字符串时,是否将单引号或双引号、反引号和注释视为常规字符(而不是语法元素)。环境.literal = TRUE可能只有与定制结合才有意义.transformer,就像这样glue_col()。将此论证(尤其是其名称)视为实验性的。

.transformer

[function]
具有三个参数的函数code,envirdata用于在评估之前、期间或之后转换每个块的输出。例如转换器参见vignette("transformers").

.trim

[logical(1): '真的']
是否修剪输入模板trim()或不。

也可以看看

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

例子

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")}.')
#> My name is Fred,my age next year is 51,my anniversary is Saturday, October 12, 1991.

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

# Named arguments can be used to assign temporary variables.
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"))
#> My name is Joe, my age next year is 41, my anniversary is Friday, October 12, 2001.

# `glue()` can also be used in user defined functions
intro <- function(name, profession, country){
  glue("My name is {name}, a {profession}, from {country}")
}
intro("Shelmith", "Senior Data Analyst", "Kenya")
#> My name is Shelmith, a Senior Data Analyst, from Kenya
intro("Cate", "Data Scientist", "Kenya")
#> My name is Cate, a Data Scientist, from Kenya

# `glue_data()` is useful in magrittr pipes
if (require(magrittr)) {

mtcars %>% glue_data("{rownames(.)} has {hp} hp")

# Or within dplyr pipelines
if (require(dplyr)) {

head(iris) %>%
  mutate(description = glue("This {Species} has a petal length of {Petal.Length}"))

}}
#> Loading required package: magrittr
#> Loading required package: dplyr
#> 
#> Attaching package: ‘dplyr’
#> The following objects are masked from ‘package:stats’:
#> 
#>     filter, lag
#> The following objects are masked from ‘package:base’:
#> 
#>     intersect, setdiff, setequal, union
#>   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#> 1          5.1         3.5          1.4         0.2  setosa
#> 2          4.9         3.0          1.4         0.2  setosa
#> 3          4.7         3.2          1.3         0.2  setosa
#> 4          4.6         3.1          1.5         0.2  setosa
#> 5          5.0         3.6          1.4         0.2  setosa
#> 6          5.4         3.9          1.7         0.4  setosa
#>                             description
#> 1 This setosa has a petal length of 1.4
#> 2 This setosa has a petal length of 1.4
#> 3 This setosa has a petal length of 1.3
#> 4 This setosa has a petal length of 1.5
#> 5 This setosa has a petal length of 1.4
#> 6 This setosa has a petal length of 1.7

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

相关用法


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