从R中的paste()函数中提取非字母字符

时间:2011-07-04 22:53:05

标签: r concatenation

以下变量:

x <- "^howdy"

像这样传入粘贴函数:

paste(x, "there", sep=".")

按预期返回字符串"^howdy.there"。如何从howdy中删除插入符号,以便字符串仅返回"howdy.there"

2 个答案:

答案 0 :(得分:3)

您可以使用gsub

执行此操作
paste(gsub("^","",x,fixed=TRUE),"there",sep=".")

答案 1 :(得分:2)

如果你有一个字符向量并且需要删除任何非字母数字字符,这个稍微复杂的正则表达式将比手动明确指定每个字符更有效。

> gsub("[^[:alnum:]._]","",c("&hi_there%","^howdy.there"))
[1] "hi_there"    "howdy.there"

在正则表达式中,[]的内容称为“字符类”,[]内的每个字符都将匹配(如果第一个字符为^,则不匹配在上面的例子中)。因此,我们可以使用gsub将空字符串""替换为非字母数字,句点或下划线的所有字符。