[R] Splitting a character vector.

John Kane jrkrideau at inbox.com
Sun Jul 8 00:17:06 CEST 2012


No sorry Rui,

In the expression result <- strsplit(sub(close.par, "", dd1), open.par)
there is  close.par, ''", open.par

I probably am just blind but I don't understand what it is doing.



John Kane
Kingston ON Canada


> -----Original Message-----
> From: ruipbarradas at sapo.pt
> Sent: Sat, 07 Jul 2012 23:08:19 +0100
> To: jrkrideau at inbox.com
> Subject: Re: [R] Splitting a character vector.
> 
> 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
>>> Sent: Sat, 07 Jul 2012 22:55:41 +0100
>>> To: 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 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 MARINE AQUARIUM SCREENSAVER - Watch dolphins, sharks & orcas on
>> your desktop!
>> Check it out at http://www.inbox.com/marineaquarium
>> 
>>

____________________________________________________________
FREE 3D MARINE AQUARIUM SCREENSAVER - Watch dolphins, sharks & orcas on your desktop!



More information about the R-help mailing list