[R] Splitting a character vector.

Rui Barradas ruipbarradas at sapo.pt
Sun Jul 8 00:28:26 CEST 2012


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: ruipbarradas at sapo.pt
>> Sent: Sat, 07 Jul 2012 23:12:46 +0100
>> To: markleeds2 at 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 <ruipbarradas at sapo.pt
>>> <mailto:ruipbarradas at 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: ruipbarradas at sapo.pt <mailto:ruipbarradas at sapo.pt>
>>>              Sent: Sat, 07 Jul 2012 22:55:41 +0100
>>>              To: jrkrideau at inbox.com <mailto:jrkrideau at 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 at r-project.org <mailto:R-help at 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 at r-project.org <mailto:R-help at 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 at 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!
>
>



More information about the R-help mailing list