The space is for a different reason, strsplit doesn't put the split pattern in the result, so if a space is included it will be automatically deleted. For instance in "XXY (mat harry)" without the space it would become "XXY " and "mat harry)" but we want "XXY" so include the space in the pattern.

Another example, this one artificial:

"123AB456" ---> "123" and "456"

strsplit("123AB456", "B") ---> "123A" and "456"

So include the "A" in the pattern. It's _exactly_ the same thing.

Rui Barradas

Em 07-07-2012 23:21, John Kane escreveu:
Ah, I think Mark may have it.  See my earlier post.  Why the space?

John Kane
Kingston ON Canada


-----Original Message-----
From: ruipbarra...@sapo.pt
Sent: Sat, 07 Jul 2012 23:12:46 +0100
To: marklee...@gmail.com
Subject: Re: [R] Splitting a character vector.

Oh, right!

The close parenthesis isn't doing nothing in the result, t could be done
after but since we're to it...

Rui Barradas

Em 07-07-2012 23:10, Mark Leeds escreveu:
Hi Rui: I think he's asking about your replacement with blanks.


On Sat, Jul 7, 2012 at 6:08 PM, Rui Barradas <ruipbarra...@sapo.pt
<mailto:ruipbarra...@sapo.pt>> wrote:

     Hello,

     Sorry, but I don't understand, you're asking about 4 single quotes,
     the double quotes in open.par are just opening and closing the
     pattern, a character string.

     Rui Barradas

     Em 07-07-2012 23:03, John Kane escreveu:

         Thanks Rui
         It works perfectly so far on the test and real data.

         The annoying thing is that I had tried , or thought I'd tried
         the open.par format and keep getting an error.

            It looks like I had failed to add the '''',  in the term.
         What is it doing?



         John Kane
         Kingston ON Canada


             -----Original Message-----
             From: ruipbarra...@sapo.pt <mailto:ruipbarra...@sapo.pt>
             Sent: Sat, 07 Jul 2012 22:55:41 +0100
             To: jrkrid...@inbox.com <mailto:jrkrid...@inbox.com>
             Subject: Re: [R] Splitting a character vector.

             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 <mailto:R-help@r-project.org>
                 mailing list
                 https://stat.ethz.ch/mailman/__listinfo/r-help
                 <https://stat.ethz.ch/mailman/listinfo/r-help>
                 PLEASE do read the posting guide
                 http://www.R-project.org/__posting-guide.html
                 <http://www.R-project.org/posting-guide.html>
                 and provide commented, minimal, self-contained,
                 reproducible code.


         ______________________________________________________________
         FREE 3D MARINE AQUARIUM SCREENSAVER - Watch dolphins, sharks &
         orcas on your desktop!
         Check it out at http://www.inbox.com/__marineaquarium
         <http://www.inbox.com/marineaquarium>



     ________________________________________________
     R-help@r-project.org <mailto:R-help@r-project.org> mailing list
     https://stat.ethz.ch/mailman/__listinfo/r-help
     <https://stat.ethz.ch/mailman/listinfo/r-help>
     PLEASE do read the posting guide
     http://www.R-project.org/__posting-guide.html
     <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 ONLINE PHOTOSHARING - Share your photos online with your friends and 
family!
Visit http://www.inbox.com/photosharing to find out more!



______________________________________________
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.

Reply via email to