将向量粘贴到字符串

Posted

技术标签:

【中文标题】将向量粘贴到字符串
【英文标题】:Glue vector to string将向量粘贴到字符串
【发布时间】:2020-01-07 09:40:16
【相关技术】:@tags@
【问题描述】:

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

【问题讨论】:


【参考方案1】:

你可以这样做,

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

【讨论】:

感谢您的回答。正如指定的那样,我想留下胶水(为了一致性)。但是toString() 很棒,可以和我看到的胶水结合使用。非常感谢!【参考方案2】:

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

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

【讨论】:

【参考方案3】:

无需任何软件包即可轻松完成。以下是一些可能性:

# 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"

【讨论】:

感谢您的回答。正如指定的那样,我想留下胶水(为了一致性)。但是toString() 很棒,可以和我看到的胶水结合使用。非常感谢!我接受了 Sotos 的回答,因为他的速度有点快,我希望这对你没问题。 实际上提出的问题是“我监督有没有更简单/更清洁的实施方式?”并且在没有额外复杂性的情况下消除依赖似乎更干净。 公平点。我在那里不够具体,抱歉。

以上是关于将向量粘贴到字符串的主要内容,如果未能解决你的问题,请参考以下文章

R语言字符串2021.2.3

将向量中的值粘贴到 R 中的列名

将字符串添加到向量的向量[关闭]

如何将字符复制到字符串向量中

提升精神:将结果复制到字符串向量中

WinAPI GetWindowText 作为字符串