[R] Splitting a character vector.
John Kane
jrkrideau at inbox.com
Sun Jul 8 00:33:20 CEST 2012
I think I'm geting it a bit. Anyway time to shut down and have a beer. Life will be much nice tomorrow or Monday when I get back to cleaning up the data from that spreadsheet.
Many thanks and have a good weekend.
John Kane
Kingston ON Canada
> -----Original Message-----
> From: ruipbarradas at sapo.pt
> Sent: Sat, 07 Jul 2012 23:28:26 +0100
> To: jrkrideau at inbox.com
> Subject: Re: [R] Splitting a character vector.
>
> 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!
>>
>>
>
____________________________________________________________
GET FREE SMILEYS FOR YOUR IM & EMAIL - Learn more at http://www.inbox.com/smileys
Works with AIM®, MSN® Messenger, Yahoo!® Messenger, ICQ®, Google Talk™ and most webmails
More information about the R-help
mailing list