如何在R中的字符串中的每个单词周围添加引号?

问题描述 投票:8回答:3

我有一个字符串:

words<-"Monday, Tuesday, Wednesday, Thursday,Friday"

而且我只需要在每个单词上加上引号:

"Monday", "Tuesday", "Wednesday", "Thursday","Friday"

获得五个字符串的长度。

我知道关于这个主题的文章很多,但是我在R中找不到任何相关内容。

非常感谢。

r double-quotes
3个回答
11
投票

我们可以将单词除以,以得到list输出。我们依次遍历sapplydQuote元素,然后将paste与其作为toString的包装器的paste(..., collapse=', ')一起循环。

sapply(strsplit(words, '[, ]+'), function(x) toString(dQuote(x)))
#[1] "“Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”"

如果需要更改花式引号,请在FALSE中添加dQuote

sapply(strsplit(words, '[, ]+'), function(x) toString(dQuote(x, FALSE)))

8
投票

使用gsub

words<-"Monday, Tuesday, Wednesday, Thursday,Friday"
cat(gsub("(\\w+)", '"\\1"', words))
# "Monday", "Tuesday", "Wednesday", "Thursday","Friday"

KISS ....

cat(gsub("\\b", '"', words, perl=T))
#"Monday", "Tuesday", "Wednesday", "Thursday","Friday"

\\b称为单词边界,它在单词字符(AZ,az,_,0-9)和非单词字符(不是A-Za-z0-9_)之间匹配,反之亦然..


3
投票

strsplit用逗号分割字符串,并且sub删除空格。

paste(dQuote(sub(" ","",unlist(strsplit(words,split = ",")))),collapse = ", ")

[1] "“Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”"
© www.soinside.com 2019 - 2024. All rights reserved.