1

我想产生这个字符串: 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 = ", ")
4

3 回答 3

4

你可以这样做,

paste('All my variables:', toString(vars))
#[1] "All my variables: a, b, c"
于 2019-09-04T13:28:35.483 回答
3

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

vars <- c("a", "b", "c")
glue("All my variables : {glue_collapse(vars,  sep = ', ')}")
#> All my variables : a, b, c
于 2019-12-18T09:28:43.740 回答
2

这可以很容易地完成,根本不需要任何包。以下是一些可能性:

# 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

来自gsubfnfn$包。在任何函数调用前加上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"
于 2019-09-04T13:29:24.143 回答