我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)
举个例子,
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)