鉴于
test<-"Low-Decarie, Etienne"
我希望用空格替换所有标点符号
gsub(pattern="[:punct:]", x=test, replacement=" ")
但这会产生
"Low-De arie, E ie e"
其中没有替换标点符号,并且删除了明显随机的字母(尽管它们可能与标点符号相关联,标签为t,下一行为n)。
答案 0 :(得分:21)
MontReal用户在这里。
有几个选项,结果相同。
在R Base中,只需加倍括号
gsub(pattern="[[:punct:]]", test, replacement=" ")
[1] "Low Decarie Etienne"
包stringr
具有执行此功能的str_replace_all
功能。
library(stringr)
str_replace_all(test, "[[:punct:]]", " ")
或只保留字母
str_replace_all(test, "[^[:alnum:]]", " ")