从数据框中删除特殊字符

时间:2012-08-15 14:12:38

标签: r regex grep gsub non-printing-characters

我有一个包含字符串“Energyper m”的矩阵。 在'm'是带有问号的菱形符号之前 - 我不知道它是什么。

我试图通过在矩阵的列上使用它来摆脱它:

a=gsub('Energy per �m','',a) 

[并使用gsub的第一个术语的复制/粘贴],但它不起作用。[a = rep(5,Energy per)中的意外符号。当我尝试从原始矩阵中提取某些内容时grepl我得到:

46: In grepl("ref. value", raw$parameter) :
input string 15318 is invalid in this locale

如何摆脱所有这些迹象?我想只有0-9,A-Z,a-z,/和'。剩下的就可以了。

1 个答案:

答案 0 :(得分:19)

使用正则表达式可能有更好的方法(例如通过更改Encoding)。

但这是你的正则表达式解决方案:

gsub("[^0-9A-Za-z///' ]", "", a)
[1] "Energy per m"

但是,正如@JoshuaUlrich指出的那样,你最好使用:

gsub("[^[:alnum:]///' ]", "", x)
[1] "Energy per m"