【发布时间】:2013-02-13 13:40:01
【问题描述】:
我有一个要处理的字符串向量,但我无法摆脱一些奇怪的字符。
当我阅读 csv 文件时,我使用了以下行:
train <- read.csv(file="files/file1.csv", header = T, encoding = "UTF-8")
我用这条线来尝试去掉标点符号:
train$var1 <- gsub("[[:punct:]]", " ", train$var1)
但是在运行后检查时,我仍然看到奇怪的单引号、“...”和像密码隐藏字符一样的黑点。这是输出:
dput(unique(unlist(var1List))[c(30242:30246, 30561, 30484)])
c("opportunity…", "about…", "expected…", "reward…", "us…", "‘as",
"<U+25CF>")
对摆脱这些字符有什么建议吗?
【问题讨论】:
-
删除除允许字符的“白名单”之外的所有内容怎么样?你能定义这样的白名单吗?
-
as中的勾号是重音而不是引号。您还具有省略号字符而不是三个句点。gsub('[^A-z0-9]', '', x)将只保留字母和数字,但您会丢失最后一个字符串中的 unicode 表示。 -
@Justin:不要使用
[A-z]。它不仅匹配字母。 (另外,这不是口音,而是(单曲)引号)。 -
@TimPietzcker 哦!它还有什么匹配的?
-
@Justin 使用
[:alnum:]之类的东西可能更安全。