将向量粘附到字符串

Glue vector to string

我想生成这个字符串: All my variables: a, b, c 从这个变量 vars <- c("a", "b", "c") 使用 glue().

到目前为止我最好的尝试是:

library(glue)
glue('All my variables: {paste(vars, collapse = ", ")}')

问题:

有没有我监督的更简单/更清晰的实施方式?

其他尝试:

以下显然失败了,我只是想表明我查看了文档并做了一些努力:)。

glue('All my variables: {vars}')
glue_data('All my variables: {vars}', .sep = ", ")

你可以做到,

paste('All my variables:', toString(vars))
#[1] "All my variables: a, b, c"

无需任何软件包即可轻松完成此操作。这里有一些可能性:

# 1
paste("All my variables:", toString(vars))
## [1] "All my variables: a, b, c"

# 2
sprintf("All my variables: %s", toString(vars))
## [1] "All my variables: a, b, c"

# 3
sub("@", toString(vars), "All my variables: @")
## [1] "All my variables: a, b, c"

如果您希望执行此操作以输出警告或错误消息:

# 4a
warning("All my variables: ", toString(vars))
## Warning message:
## All my variables: a, b, c 

# 4b
stop("All my variables: ", toString(vars))
## Error: All my variables: a, b, c

使用来自 gsubfn 包的 fn$。在任何函数调用前加上 fn$(例如此处的 c),然后将使用准 perl 字符串插值处理参数。

# 5
library(gsubfn)
fn$c("All my variables: `toString(vars)`")
## [1] "All my variables: a, b, c"

# 6
library(gsubfn)
string <- toString(vars)
fn$c("All my variables: $string")
## [1] "All my variables: a, b, c"

你也可以使用 glue::glue_collapse() :

vars <- c("a", "b", "c")
glue("All my variables : {glue_collapse(vars,  sep = ', ')}")
#> All my variables : a, b, c