【发布时间】:2018-03-22 05:17:32
【问题描述】:
我想清除其中有破折号的零售商的文本。
我是 R 和编程本身的新手,所以请在这里帮助我。我一般都懂一点正则表达式。
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
【问题讨论】:
-
应该看起来像第 1 列或第 2 列?你有什么,你期望什么?
-
它应该看起来像第 2 列
-
所以只有第一个` `(空格)应该替换为` - `(空格-破折号-空格),对吧?
-
@CoffeehouseCoder 是的先生
-
只做
sub("\\s"," - ",mydata$col1)