[R] Splitting a character vector.
Rui Barradas
ruipbarradas at sapo.pt
Sat Jul 7 23:55:41 CEST 2012
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.
>
More information about the R-help
mailing list