如何在R中保留撇号的字符串?
我想在R中创建一个字符串,然后我可以使用它来调用SQL存储过程。如何在R中保留撇号的字符串?
Websites <- paste('UK,','DE,','CA,', 'US', sep = " ")
print(Websites)
[1] "UK, DE, CA, US"
如何改变这种为输出:
"'UK', 'DE', 'CA', 'US"?
我们可以使用gsub
gsub("\\b(\\w+)\\b", "'\\1'", Websites)
#[1] "'UK', 'DE', 'CA', 'US'"
或者另一种选择是
paste(sQuote(c('UK','DE','CA', 'US')), collapse=" ")
你可以简单地做
library(magrittr)
Websites<-"UK, DE, CA, US" %>% gsub("(\\w+)", "'\\1'", .)
print(Websites)
#[1] "'UK', 'DE', 'CA', 'US'"
为什么复杂这个简单通过使用'magrittr'和一个管道来回答它? – Gregor
它暴露了输入,提高了可读性,这使得它更容易修改。对我来说,可读性是关于magrittr的最好的事情,尽管它在一些代码中给出的头痛以及命名操作(blergh!) – RBA
可读性是关于'magrittr'的*唯一*的事情 - 在多重嵌套函数调用的情况下,我认为管道是一个巨大的改进,但是对于单个函数调用,我发现管道读取性很差。对于基本的SO Q&A,不需要加载'%>%'的任何软件包,单个管道可能会c对之前没有见过的新用户进行过滤。我没有降低评分,但我确实认为这会让你的答案难以接近,因此质量下降。 – Gregor
不熟悉sQuote。我有'paste0'(''“,c('UK,','DE','CA','US,'),”'“,collapse =”“)',我猜这是相当的 – dww
只有一个'sQuote'上的细节,它会使用花哨的引号而不是''''''''除非你设置了正确的选项'options(useFancyQuotes = FALSE)',这在过去引起了我的一些悲伤 – Chrisss