【问题标题】:Glue vector to string将向量粘贴到字符串
【发布时间】:2020-01-07 09:40:16
【问题描述】:

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

【问题讨论】:

    标签: r r-glue


    【解决方案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 的回答,因为他的速度有点快,我希望这对你没问题。
      • 实际上提出的问题是“我监督有没有更简单/更清洁的实施方式?”并且在没有额外复杂性的情况下消除依赖似乎更干净。
      • 公平点。我在那里不够具体,抱歉。
      猜你喜欢
      • 2022-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-17
      • 2011-10-22
      • 1970-01-01
      相关资源
      最近更新 更多