如何在R中使用Sub函数

nas*_*fri 4 regex r

dopers在R中读一个csv文件" ".

dopers <- read.csv(file="generalDoping_alldata2.csv", head=TRUE,sep=",")
Run Code Online (Sandbox Code Playgroud)

读完文件后,我必须做一些数据清理.例如,country如果它在列中

"美国"或"美国"

我想用它替换它 "USA"

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

dopers$Country = sub("^UNITED STATES.*$", "USA", dopers$Country)
Run Code Online (Sandbox Code Playgroud)

Kar*_* W. 5

举个例子,

s <- c(" United States", " United States ", "United States ")
Run Code Online (Sandbox Code Playgroud)

您可以定义与之匹配的正则表达式模式

pat <- "^.*United State.*$"
Run Code Online (Sandbox Code Playgroud)

这里,^表示$字符串的开头和结尾,同时 .代表任何字符并*定义重复(零到任意).您可以尝试修改模式,例如

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

然后通过执行替换

gsub(pat, "USA", s)
Run Code Online (Sandbox Code Playgroud)