Thanks Jeff. I actually had that figured out after a good hour of pounding my head against the wall but I still could not seem to get the syntax correct. I think I misunderstand strpsplt() just enough to keep making dumb mistakes.
John Kane Kingston ON Canada > -----Original Message----- > From: jdnew...@dcn.davis.ca.us > Sent: Sat, 07 Jul 2012 15:12:16 -0700 > To: ruipbarra...@sapo.pt, jrkrid...@inbox.com > Subject: Re: [R] Splitting a character vector. > > Just to clarify, the regex engine wants to see a \ before the ( if it is > to treat it as an ordinary character. However, the source code > interpreter also treats \ as an escape character. In order to get a \ > into the string, you have to escape it. So it takes two \ characters in > source code to obtain one \ character in memory where the regex code can > "see" it. > --------------------------------------------------------------------------- > Jeff Newmiller The ..... ..... Go > Live... > DCN:<jdnew...@dcn.davis.ca.us> Basics: ##.#. ##.#. Live > Go... > Live: OO#.. Dead: OO#.. Playing > Research Engineer (Solar/Batteries O.O#. #.O#. with > /Software/Embedded Controllers) .OO#. .OO#. > rocks...1k > --------------------------------------------------------------------------- > Sent from my phone. Please excuse my brevity. > > Rui Barradas <ruipbarra...@sapo.pt> wrote: > > >Hello, >> > >Try the following. >> > >open.par <- " \\(" # with a blank before '(' > >close.par <- "\\)" > >result <- strsplit(sub(close.par, "", dd1), open.par) >> >> > >Why the two '\\'? Because '(' is a meta-character so it must be > >escaped. > >But '\' is a meta character so it must also be escaped. >> > >Then choose the right way to separate the two, maybe something like >> > >ix <- rep(c(TRUE, FALSE), length(result)) > >unlist(result)[ix] > >unlist(result)[!ix] >> >> > >Hope this helps, >> > >Rui Barradas >> > >Em 07-07-2012 22:37, John Kane escreveu: >>> I am lousy at simple regex and I have not found a solution to a > >simple problem. >>> >>> I have a vector with some character values that I want to split. >>> Sample data >>> dd1 <- c( "XXY (mat harry)","XXY (jim bob)", "CAMP (joe blow)", > >"ALP (max jack)") >>> >>> Desired result >>> dd2 <- data.frame( xx = c("XXY", "XXY", "CAMP", "ALP"), yy = c("mat > >harry", "jim bob" , "joe blow", "max jack")) >>> >>> I thought I should be able to split the characters with strsplit but > >either I am misunderstanding the function or don't know how to escape a > >"(" properly in an effort to at least get "XXY" "(mat harry)" >>> >>> Any pointers would be appreciated >>> Thanks >>> John Kane >>> Kingston ON Canada >>> >>> ____________________________________________________________ >>> FREE 3D MARINE AQUARIUM SCREENSAVER - Watch dolphins, sharks & orcas > >on your desktop! >>> >>> ______________________________________________ >>> R-help@r-project.org mailing list >>> https://stat.ethz.ch/mailman/listinfo/r-help >>> PLEASE do read the posting guide > >http://www.R-project.org/posting-guide.html >>> and provide commented, minimal, self-contained, reproducible code. >>> >> > >______________________________________________ > >R-help@r-project.org mailing list > >https://stat.ethz.ch/mailman/listinfo/r-help > >PLEASE do read the posting guide > >http://www.R-project.org/posting-guide.html > >and provide commented, minimal, self-contained, reproducible code. ____________________________________________________________ FREE 3D EARTH SCREENSAVER - Watch the Earth right on your desktop! ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.