首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >是否删除R中字符串中的所有特殊字符?

是否删除R中字符串中的所有特殊字符?
EN

Stack Overflow用户
提问于 2012-04-24 16:24:49
回答 3查看 262.3K关注 0票数 145

如何删除R中字符串中的所有特殊字符并将其替换为空格?

要删除的一些特殊字符是:~!@#$%^&*(){}_+:"<>?,./;'[]-=

我尝试过带有[:punct:]模式的regex,但它只删除标点符号。

问题2:如何从外语中删除字符,如:â í ü Â á ą ę ś ć

答:使用[^[:alnum:]]删除~!@#$%^&*(){}_+:"<>?,./;'[]-=,并使用[^a-zA-Z0-9]删除regexregexpr函数中的â í ü Â á ą ę ś ć

base R中的解决方案:

代码语言:javascript
复制
x <- "a1~!@#$%^&*(){}_+:\"<>?,./;'[]-=" 
gsub("[[:punct:]]", "", x)  # no libraries needed
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-04-24 17:01:29

您需要使用regular expressions来识别不需要的字符。对于最易读的代码,您需要来自stringr包的str_replace_all,尽管来自基R的gsub也同样有效。

确切的正则表达式取决于您尝试执行的操作。您可以只删除问题中给出的那些特定字符,但删除所有标点符号要容易得多。

代码语言:javascript
复制
x <- "a1~!@#$%^&*(){}_+:\"<>?,./;'[]-=" #or whatever
str_replace_all(x, "[[:punct:]]", " ")

(基本的R等效项是gsub("[[:punct:]]", " ", x)。)

另一种方法是换出所有非字母数字字符。

代码语言:javascript
复制
str_replace_all(x, "[^[:alnum:]]", " ")

请注意,字母、数字或标点符号的定义因您的语言环境而略有不同,因此您可能需要尝试一下才能准确地获得您想要的内容。

票数 233
EN

Stack Overflow用户

发布于 2017-08-29 22:27:00

不使用正则表达式来删除这些“疯狂”的字符,只需将它们转换为ASCII,这将删除重音,但将保留字母。

代码语言:javascript
复制
astr <- "Ábcdêãçoàúü"
iconv(astr, from = 'UTF-8', to = 'ASCII//TRANSLIT')

这导致了

代码语言:javascript
复制
[1] "Abcdeacoauu"
票数 51
EN

Stack Overflow用户

发布于 2017-12-12 15:19:02

将特殊字符转换为撇号,

代码语言:javascript
复制
Data  <- gsub("[^0-9A-Za-z///' ]","'" , Data ,ignore.case = TRUE)

下面对其进行编码以删除多余的‘撇号

代码语言:javascript
复制
Data <- gsub("''","" , Data ,ignore.case = TRUE)

使用gsub(..)函数将特殊字符替换为撇号

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10294284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档