R paste string with collapse - 如何用引号保留字符串?
R paste string with collapse - How to keep string with quotes?
我在将两个字符串粘贴在一起时遇到引号问题。
我想要这样的输出:query= "sql query","port"
我试过了:
query<-c("sql query","port")
paste(queryString,collapse=",")
给出:"sql query,port"
也试过这个:
query<-c("sql query")
query<-paste(query,"port",sep=",")
这也给出了:"sql query,port"
没有正确位置的引号,查询将不会 运行。
我怎样才能保留它们?
试试这个:
queryq <- toString(shQuote(query))
给出:
cat(queryq, "\n")
## "sql query", "port"
您也可以使用
toString(sprintf("'%s'", query))
#[1] "'sql query', 'port'"
基准
使用来自 stringi
的 stri_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
我在将两个字符串粘贴在一起时遇到引号问题。
我想要这样的输出:query= "sql query","port"
我试过了:
query<-c("sql query","port")
paste(queryString,collapse=",")
给出:"sql query,port"
也试过这个:
query<-c("sql query")
query<-paste(query,"port",sep=",")
这也给出了:"sql query,port"
没有正确位置的引号,查询将不会 运行。 我怎样才能保留它们?
试试这个:
queryq <- toString(shQuote(query))
给出:
cat(queryq, "\n")
## "sql query", "port"
您也可以使用
toString(sprintf("'%s'", query))
#[1] "'sql query', 'port'"
基准
使用来自 stringi
stri_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