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

bri*_*enb 4 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 BOX 123456".有没有比我正在做的更好的方法呢?

Avi*_*Raj 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" 
Run Code Online (Sandbox Code Playgroud)

它只是删除了两个单个字符之间存在的空间.