我有一个字符串:
words<-"Monday, Tuesday, Wednesday, Thursday,Friday"
而且我只需要在每个单词上加上引号:
"Monday", "Tuesday", "Wednesday", "Thursday","Friday"
获得五个字符串的长度。
我知道关于这个主题的文章很多,但是我在R中找不到任何相关内容。
非常感谢。
我们可以将单词除以,
以得到list
输出。我们依次遍历sapply
,dQuote
元素,然后将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)))
使用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_)之间匹配,反之亦然..
strsplit用逗号分割字符串,并且sub删除空格。
paste(dQuote(sub(" ","",unlist(strsplit(words,split = ",")))),collapse = ", ")
[1] "“Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”"