我想要清理那里有破折号的零售商的文字。
我是R的新手并自行编程,所以请在这里帮助我。我知道一般的REGEX。
mydata = read.csv("test4+.csv", header = TRUE)
mydata[,c("Store.Name")]
filenames <- c( "test4+.csv", "test4+.csv" )
for( f in filenames ){
z <- readLines(f)
a <- gsub("([S|s]potlight)\\s+(.*)", "\\1 - \\2", z)
b <- gsub("([W|w]oolworths)\\s*(.*)", "\\1 - \\2", z)
c <- gsub("([B|b]ig)(W)\\s*-*\\s*(.*)", "\\1 \\2 - \\3", z)
cat(a, file=f, sep="\n")
cat(b, file=f, sep="\n")
cat(c, file=f, sep="\n")}
for( f in filenames ){
cat(readLines(f), sep="\n")
}
其中col1应该看起来像col2:
col1 col2
woolworths abc woolworths - abc
woolworths bcd bce woolworths - bcd bce
spotlight blah blah (blah) spotlight - blah blah (blah)
BigW act Big W - act
external external
答案 0 :(得分:1)
你可以尝试一下:
a <- gsub("^(?:.*?)(\\s+)(?:.+)$", " - ", z)
等等。
我会非常坦率地告诉你,我以前从未在r
使用正则表达式,或gsub
,但这是我最接近的近似值。
答案 1 :(得分:0)
这应该有效:
gsub('([[:punct:]])|\\s+',' - ',data$column) #replace white space with " - "