将向量粘贴到字符串
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 的回答,因为他的速度有点快,我希望这对你没问题。
实际上提出的问题是“我监督有没有更简单/更清洁的实施方式?”并且在没有额外复杂性的情况下消除依赖似乎更干净。
公平点。我在那里不够具体,抱歉。以上是关于将向量粘贴到字符串的主要内容,如果未能解决你的问题,请参考以下文章