使用 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。
有很多关于如何从单词之间删除多余空格的答案,这非常简单。但是,我发现删除额外的空格 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。