如何刪除R中給定字符串中的所有特殊字符並用空格替換每個特殊字符?從R中的字符串中刪除所有特殊字符?
特殊字符刪除有:[email protected]#$%^&*(){}_+:"<>?,./;'[]-=
regex [:punct:]
將會使一半的工作。
問題2:但是如何刪除這些外文字符:â í ü Â á ą ę ś ć
?
ANSWER_2:在regex
或regexpr
更換[^[:alnum:]]
與[^a-zA-Z0-9]
:
regex[^a-zA-Z0-9]
如何刪除R中給定字符串中的所有特殊字符並用空格替換每個特殊字符?從R中的字符串中刪除所有特殊字符?
特殊字符刪除有:[email protected]#$%^&*(){}_+:"<>?,./;'[]-=
regex [:punct:]
將會使一半的工作。
問題2:但是如何刪除這些外文字符:â í ü Â á ą ę ś ć
?
ANSWER_2:在regex
或regexpr
更換[^[:alnum:]]
與[^a-zA-Z0-9]
:
regex[^a-zA-Z0-9]
您需要使用regular expressions識別不想要的字符。對於最容易讀取的代碼,您需要從stringr
包中獲得str_replace_all
,但來自基礎R的gsub
也同樣適用。
確切的正則表達式取決於你正在嘗試做什麼。您可以刪除問題中提供的特定字符,但刪除所有標點符號會更容易。
x <- "[email protected]#$%^&*(){}_+:\"<>?,./;'[]-=" #or whatever
str_replace_all(x, "[[:punct:]]", " ")
(鹼基r當量是gsub("[[:punct:]]", " ", x)
。)
一種替代方法是換出所有非字母數字字符。
str_replace_all(x, "[^[:alnum:]]", " ")
需要注意的是什麼構成一個字母或數字或punctuatution標誌會略有不同,這取決於您的語言環境,所以你可能需要嘗試一點點地得到你想要什麼的定義。
好的答案+1你可能想用'「」替換'''''',否則你的字符串中會有空的空白。 – 2012-04-24 10:50:44
@TylerRinker:雖然QBik特別要求空間,但的確如此。 – 2012-04-24 13:04:04
良好的通話,錯過了。 – 2012-04-24 13:40:06
而不是使用正則表達式來刪除這些「瘋狂」的字符,只是將它們轉換爲ASCII,這將刪除重音符號,保持字母。
astr <- "Ábcdêãçoàúü"
iconv(astr, to = "ASCII//TRANSLIT")
導致
[1] "Abcdeacoauu"
轉換的特殊字符,撇號,
Data <- gsub("[^0-9A-Za-z///' ]","'" , Data ,ignore.case = TRUE)
下面的代碼以去除多餘的 ''」撇號
Data <- gsub("''","" , Data ,ignore.case = TRUE)
使用gsub(..)
功能用撇號替換特殊字符
「特殊字符」的定義是什麼? – kohske 2012-04-24 08:28:57
我自己的定義是每個不是Unicode的字符;-)。但我想很多其他人會不同意。 – Joey 2012-04-24 08:31:17
也許看看'sub'或'gsub'函數。 – 2012-04-24 08:53:27