我有这个字符串(例如)。
str <- "T gwed is atyrt mtt yfdgfg grter effgf y"
我想从这个字符串中删除单独出现的字母(在这种情况下,&#39; T&#39;在这种情况下,最后是&#39; y&#39;并且输出应该是
"gwed is atyrt mtt yfdgfg grter effgf"
我用过这个
str <- gsub("[A-Za-z] ", "", str)
但它结果就是这样。
[1] "gweiatyrmtyfdgfgrtey"
这里考虑像&#34; gwed&#34;也因此它合并了字符串的每个单词。
我如何实现目标?
另外,我有这么大的文本有成千上万的字符串(不只是一个字符串),所以在提供答案时请记住这一点。
答案 0 :(得分:3)
str <- "T gwed is atyrt mtt yfdgfg grter effgf y"
gsub(" ?\\<[[:alpha:]]\\> ?", "", str)
## [1] "gwed is atyrt mtt yfdgfg grter effgf"
您需要使用特殊字符来表示字边界,即\\<
和\\>
。 _?
(其中_
是空格)表示您还要删除单个字母(如果存在)周围的单个空格。有关详情,请参阅?regex
。
答案 1 :(得分:1)
不使用正则表达式的另一个选项:
xx <- unlist(strsplit(str, " "))
paste(xx[nchar(xx)>1],collapse=' ')
[1] "gwed is atyrt mtt yfdgfg grter effgf"