VincentH
VincentH

Reputation: 1029

Add single quotes to a string

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

Answers (6)

s_baldur
s_baldur

Reputation: 33603

With sprintf():

x <- c("paste", "cat", "print")

sprintf("'%s'", x)
# [1] "'paste'" "'cat'"   "'print'"

Upvotes: 0

Josh O&#39;Brien
Josh O&#39;Brien

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

agstudy
agstudy

Reputation: 121608

Using Reduce and paste0

Reduce(paste0,list("'","a","'"))
 [1] "'a'"

Upvotes: 1

Rcoster
Rcoster

Reputation: 3210

Extending @vodka answer:

s <- c("cat", "dog")
a <- "'"
mapply(paste0, a, s, a)

Upvotes: 1

vodka
vodka

Reputation: 508

Maybe I'm missing something:

s <- "cat"
a <- "'"
paste(a,s,a,sep="")

Upvotes: 0

csgillespie
csgillespie

Reputation: 60512

Just use paste:

R> paste("'", "ABC", "'", sep="")
[1] "'ABC'"

or the new variety

R> paste0("'", "ABC", "'")
[1] "'ABC'"

Upvotes: 10

Related Questions