代码之家  ›  专栏  ›  技术社区  ›  screechOwl

R删除特殊字符和重复下划线

  •  3
  • screechOwl  · 技术社区  · 7 年前

    我有一个包含空格和其他标点字符的数据集。我试图用“_”替换空格和特殊字符。这会创建多个“_”串在一起的斑点,因此我也希望使用下面描述的函数来删除这些斑点 here

    removeSpace <- function(x){
        class1 <- class(x)
        x <- as.character(x)
        x <- gsub(" |&|-|/|'|(|)",'_', x) # convert special characters to _
        x <- gsub("([_])\\1+","\\1", x)   # convert multiple _ to single _
    
        if(class1 == 'character'){
            return(x)
        }
        if(class1 == 'factor'){
            return(as.factor(x))
        }
    }
    

    问题不是删除空格并用“_”替换,而是用“_”(即“test”->“t\u e\u s\u t”)替换其他字符

    我做错了什么?

    1 回复  |  直到 7 年前
        1
  •  10
  •   CAustin    7 年前

    您不需要运行两个单独的替换来实现这一点。只要放一个 +

    匹配: [-/&'() ]+

    _

    还要注意,我使用了字符集,而不是在每个选项之间切换 |