使用R中的gsub删除尾随空格

Mik*_*eTP 8 r gsub

有没有人有一个技巧来删除变量上的尾随空格与gsub?

以下是我的数据示例.如您所见,我在变量中嵌入了尾随空格和空格.

county <- c("mississippi ","mississippi canyon","missoula ",
            "mitchell ","mobile ", "mobile bay")  
Run Code Online (Sandbox Code Playgroud)

我可以使用以下逻辑删除所有空格,但我真正想要的是仅在末尾移动空格.

county2 <- gsub(" ","",county)
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.

Jos*_*ich 31

阅读?regex以了解正则表达式的工作原理.

gsub("[[:space:]]*$","",county)
Run Code Online (Sandbox Code Playgroud)

[:space:]是一个预定义的字符类,它匹配您的语言环境中的空格字符. *说重复匹配零次或多次并$说匹配字符串的结尾.

  • @MikeTP Hadly在他的包`stringr`中很好地总结了一堆常见的字符串函数.执行此操作的是`str_trim()`. (3认同)

小智 12

您可以使用正则表达式:

 county <- c("mississippi ","mississippi canyon","missoula ",
        "mitchell ","mobile ", "mobile bay")  
 county2 <- gsub(" $","", county, perl=T)
Run Code Online (Sandbox Code Playgroud)

$代表文本序列的结尾,因此只匹配尾随空格.perl=T为匹配模式启用正则表达式.欲了解更多关于正则表达式见?regex.

  • @MikeTP:请注意,这仅在只有一个尾随空格时才有效.如果你的`county`向量有一个带有多个尾随空格的元素,则只删除最后一个. (5认同)

Mat*_*ewR 8

如果您不需要使用gsub命令 - str_trim函数对此很有用.

    library(stringr)
    county <- c("mississippi ","mississippi canyon","missoula ",
        "mitchell ","mobile ", "mobile bay")
    str_trim(county)
Run Code Online (Sandbox Code Playgroud)