【问题标题】:R paste string with collapse - How to keep string with quotes?R粘贴字符串折叠 - 如何用引号保留字符串?
【发布时间】:2015-05-13 04:54:56
【问题描述】:

我在将两个字符串粘贴在一起时遇到引号问题。

我想要这样的输出:query="sql query","port"

我试过了:

      query<-c("sql query","port")
      paste(queryString,collapse=",")

给出:“sql 查询,端口”

也试过这个:

        query<-c("sql query")
        query<-paste(query,"port",sep=",")

其中还给出:“sql 查询,端口”

如果在正确的位置没有引号,查询将无法运行。 我怎样才能保留它们?

【问题讨论】:

  • 更新了一些基准

标签: r paste collapse


【解决方案1】:

试试这个:

queryq <- toString(shQuote(query))

给出:

cat(queryq, "\n")
## "sql query", "port" 

【讨论】:

    【解决方案2】:

    你也可以使用

    toString(sprintf("'%s'", query))
    #[1] "'sql query', 'port'"
    

    基准测试

    使用来自stringistri_rand_strings 创建了一些随机字符串

    library(stringi)
    n <- 1e6
    set.seed(25)
    query1 <-  stri_rand_strings(n, 6, '[A-Za-z]')
    
    f1 <- function() {toString(sprintf("'%s'", query1)) }
    f2 <- function() {toString(shQuote(query1))}
    
    library(microbenchmark)
    microbenchmark(f1(), f2(), unit='relative', times=20L)
    #Unit: relative
    # expr      min       lq    mean   median      uq      max neval cld
    #f1() 1.000000 1.000000 1.00000 1.000000 1.00000 1.000000    20  a 
    #f2() 1.557221 1.488862 1.43024 1.443488 1.36958 1.362173    20   b
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-04
      • 1970-01-01
      • 2014-10-03
      • 2011-05-26
      • 1970-01-01
      • 2015-07-19
      • 2014-04-22
      • 1970-01-01
      相关资源
      最近更新 更多