问题
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
回答1:
Just use paste:
R> paste("'", "ABC", "'", sep="")
[1] "'ABC'"
or the new variety
R> paste0("'", "ABC", "'")
[1] "'ABC'"
回答2:
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'"
回答3:
Extending @vodka answer:
s <- c("cat", "dog")
a <- "'"
mapply(paste0, a, s, a)
回答4:
Using Reduce and paste0
Reduce(paste0,list("'","a","'"))
[1] "'a'"
回答5:
Maybe I'm missing something:
s <- "cat"
a <- "'"
paste(a,s,a,sep="")
来源:https://stackoverflow.com/questions/15529976/r-add-single-quote-to-string