使用 gsub() 从 R 中的字母之间删除多余的白色 space

Remove extra white space from between letters in R using gsub()

有很多关于如何从单词之间删除多余空格的答案,这非常简单。但是,我发现删除额外的空格 within 单词要困难得多。作为一个可重现的例子,假设我有一个看起来像这样的数据向量:

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"。有没有比我现在做的更好的方法?

你可以试试这个,

> 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" 

它只是删除存在于两个单字字符之间的space。