Reputation: 1029
I try to add single quotes to a string but don't see how to do it. For instance I would like to replace ABC by 'ABC'.
I have played with paste
, cat
, print
but don't see how to do it.
Any solution?
Thanks, Vincent
Upvotes: 12
Views: 25718
Reputation: 33603
With sprintf()
:
x <- c("paste", "cat", "print")
sprintf("'%s'", x)
# [1] "'paste'" "'cat'" "'print'"
Upvotes: 0
Reputation: 162451
Maybe use sQuote
?
sQuote("ABC")
# [1] "'ABC'"
This (like its sibling dQuote
) is frequently used to put quotes around some message or other text that's being printed to the console:
cat("ABC", "\n")
# ABC
cat(sQuote("ABC"), "\n")
# 'ABC'
Do note (as is documented in ?sQuote
) that, depending on the type of quotes needed for your task, you may need to first reset options("useFancyQuotes")
. To ensure that the function decorates your text with simple upright ASCII quotes, for example, do the following:
options(useFancyQuotes = FALSE)
sQuote("ABC")
# [1] "'ABC'"
Upvotes: 25
Reputation: 121608
Using Reduce
and paste0
Reduce(paste0,list("'","a","'"))
[1] "'a'"
Upvotes: 1
Reputation: 3210
Extending @vodka answer:
s <- c("cat", "dog")
a <- "'"
mapply(paste0, a, s, a)
Upvotes: 1
Reputation: 60512
Just use paste
:
R> paste("'", "ABC", "'", sep="")
[1] "'ABC'"
or the new variety
R> paste0("'", "ABC", "'")
[1] "'ABC'"
Upvotes: 10