如何在R中使用Sub函数

时间:2013-10-12 16:55:59

标签: regex r

我正在阅读R。

中的csv文件“dopers
dopers <- read.csv(file="generalDoping_alldata2.csv", head=TRUE,sep=",")

阅读完文件后,我必须进行一些数据清理。例如,在country列中,如果它显示

“美国”或“美国”

我想将其替换为"USA"

我想确保,如果单词为" United States ""United State ",即使是我的代码也应该有效。我想说的是,即使在"United States"之前和之后有任何字符,它也会被"USA"替换。我知道我们可以为此目的使用sub()函数。我在网上找到了这个,但我不明白"^" "&" "*" "."的作用。有人可以解释一下。

dopers$Country = sub("^UNITED STATES.*$", "USA", dopers$Country)

1 个答案:

答案 0 :(得分:5)

根据你的例子,

s <- c(" United States", " United States ", "United States ")

您可以通过

定义与它们匹配的正则表达式模式
pat <- "^.*United State.*$"

此处,^代表字符串的开头和$,而 .代表任何字符,*定义重复(零到任意)。您可以尝试修改模式,例如

pat <- "^[ ]*United State[ ]*$" # only ignores spaces
pat <- "^.*(United State|USA).*$" # only matches "  USA" etc.

然后由

执行替换
gsub(pat, "USA", s)