[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