使用gsub()从R中的字母之间删除多余的空格

时间:2015-07-07 22:18:02

标签: regex r gsub

关于如何从单词之间删除额外的空格,有很多答案,这非常简单。但是,我发现在字词中删除额外的空格要困难得多。作为一个可重复的例子,让我们说我有一个如下所示的数据向量:

x <- c("L L C", "P O BOX 123456", "NEW YORK")

我想做的是这样的事情:

y <- gsub("(\\w)(\\s)(\\w)(\\s)", "\\1\\3", x)

但这让我想到了这个:

[1] "LLC" "POBOX 123456" "NEW YORK"

几乎完美,但我真的很想让第二个价值说出来#PO; BO BOX 123456&#34;。有没有比我正在做的更好的方法呢?

1 个答案:

答案 0 :(得分:7)

你可以试试这个,

> x <- c("L L C", "P O BOX 123456", "NEW YORK")
> gsub("(?<=\\b\\w)\\s(?=\\w\\b)", "", x,perl=T)
[1] "LLC"           "PO BOX 123456" "NEW YORK" 

它只删除两个单个字符之间存在的空格。