Tony Plate <[EMAIL PROTECTED]> writes: > Many more recent regular expression implementations have ways of > indicating a match on a word boundary. It's usually "\b". ....
Another idea is that if what you need is something that is parseable as a model formula RHS, then you might want to parse first and substitute later. Something along these lines: > e <- parse(text="x1 + x3 + x4 + x5 + x1:x3 + x1:x4")[[1]] > repl = lapply(c("i7", "i14", "i13", "d2", "i8", "i5"),as.name) > names(repl)<-paste("x",1:6,sep="") > eval(substitute(substitute(e,repl),list(e=e))) i7 + i13 + d2 + i8 + i7:i13 + i7:d2 > At Wednesday 09:07 PM 10/27/2004, Kevin Wang wrote: > >Suppose I've got a matrix, and the first few elements look like > > "x1 + x3 + x4 + x5 + x1:x3 + x1:x4" > > "x1 + x2 + x3 + x5 + x1:x2 + x1:x5" > > "x1 + x3 + x4 + x5 + x1:x3 + x1:x5" > >and so on (have got terms from x1 ~ x14). > > > >If I want to replace all the x1 with i7, all x2 with i14, all x3 with i13, > >for example. Is there an easy way? > > > >I tried to put what I want to replace in a vector, like: > > repl = c("i7", "i14", "i13", "d2", "i8", "i5", > > "i6", "i3", "A", "i9", "i2", > > "i4", "i15", "i21") > >and have another vector, say: > > > orig > > [1] "x1" "x2" "x3" "x4" "x5" "x6" "x7" "x8" "x9" "x10" > >[11] "x11" "x12" "x13" "x14" > > > >Then I tried something like > > gsub(orig, repl, mat) > >## mat is the name of my matrix > > > >but it didn't work *_*.....it would replace terms like x10 with i70. -- O__ ---- Peter Dalgaard Blegdamsvej 3 c/ /'_ --- Dept. of Biostatistics 2200 Cph. N (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918 ~~~~~~~~~~ - ([EMAIL PROTECTED]) FAX: (+45) 35327907 ______________________________________________ [EMAIL PROTECTED] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html