我有一个包含空格和其他标点字符的数据集。我试图用" _"替换空格和特殊字符。这会产生多个" _"串起来,所以我也想通过使用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))
}
}
问题不是删除空格而是替换为&#34; _&#34;它用&#34; _&#34;做其他所有角色。 (即&#34;测试&#34; - &gt;&#34; t_e_s_t&#34;)
我做错了什么?
答案 0 :(得分:10)
您不需要运行两个单独的替换来完成此操作。只需在匹配模式中添加[-/&'() ]+
量词。
匹配:_
替换为:|
另请注意,我使用了字符集,而不是使用<!DOCTYPE html>
<html ng-app="myApp">
<head>
<script data-require="angular.js@1.6.1" data-semver="1.6.1" src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.1/angular.js"></script>
<link rel="stylesheet" href="style.css" />
<script src="script.js"></script>
</head>
<body ng-controller="myCtrl">
<h1>My Favourite X-Men's</h1>
<sample-component data="Jack"></sample-component> <!-- this works -->
<cast-tile cast="mutants"></cast-tile> <!-- does not work -->
</body>
</html>
在每个选项之间切换。当匹配多个单个字符中的一个时,这通常是更好的方法。