我正在阅读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)
答案 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)