On Jun 26, 2011, at 10:54 AM, Megh Dal wrote:

Dear all, I have following kind of character vector:

Vec <- c("344426", "dwjjsgcj", "123sgdc", "aagha123", "sdh343asgh", "123jhd51")


Now I want to split each element of this vector according to numeric and string element. For example in the 1st element of that vector, there is no string element. Therefore I should get a vector of length 2 like c("", "344426") and so on.

Can somebody point me how to achieve that in R? Is there any specific function for doing that?

?regex
?strsplit

You don't do a very good job of describing your desired output, so this is two versions of what I am guessing that to be:

> cbind(lapply(strsplit(Vec, "[^0-9]+"), paste, collapse=""),
+       lapply(strsplit(Vec, "[0-9]+"), paste, collapse="") )
     [,1]     [,2]
[1,] "344426" ""
[2,] ""       "dwjjsgcj"
[3,] "123"    "sgdc"
[4,] "123"    "aagha"
[5,] "343"    "sdhasgh"
[6,] "12351"  "jhd"

> data.frame(numbits=unlist(lapply(strsplit(Vec, "[^0-9]+"), paste, collapse="")), + alphabits=unlist(lapply(strsplit(Vec, "[0-9]+"), paste, collapse="")) )
  numbits alphabits
1  344426
2          dwjjsgcj
3     123      sgdc
4     123     aagha
5     343   sdhasgh
6   12351       jhd

--
David Winsemius, MD
West Hartford, CT

______________________________________________
R-help@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.

Reply via email to