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
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
Just use paste
:
R> paste("'", "ABC", "'", sep="")
[1] "'ABC'"
or the new variety
R> paste0("'", "ABC", "'")
[1] "'ABC'"
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'"
‘abc’
. But what we would actually need would be 'abc'
. When run sql it sQuote gives error –
Waterside options(useFancyQuotes = FALSE)
. (See ?sQuote
for some additional options.) –
Periosteum Just use paste
:
R> paste("'", "ABC", "'", sep="")
[1] "'ABC'"
or the new variety
R> paste0("'", "ABC", "'")
[1] "'ABC'"
Extending @vodka answer:
s <- c("cat", "dog")
a <- "'"
mapply(paste0, a, s, a)
Using Reduce
and paste0
Reduce(paste0,list("'","a","'"))
[1] "'a'"
Maybe I'm missing something:
s <- "cat"
a <- "'"
paste(a,s,a,sep="")
With sprintf()
:
x <- c("paste", "cat", "print")
sprintf("'%s'", x)
# [1] "'paste'" "'cat'" "'print'"
© 2022 - 2024 — McMap. All rights reserved.