On Aug 1, 2014, at 9:46 AM, Doran, Harold <hdo...@air.org> wrote:

> I have done an embarrassingly bad job using a mixture of gsub and strsplit to 
> solve a problem. Below is sample code showing what I have to start with (the 
> vector xx) and I want to end up with two vectors x and y that contain only 
> the digits found in xx.
> 
> Any regex users with advice most welcome
> 
> Harold
> 
> xx <- c("S24:57",   "S24:86",   "S24:119",  "S24:129",  "S24:138",  "S24:163")
> yy <- gsub("S","\\1", xx)
> a1 <- gsub(":"," ", yy)
> a2 <- sapply(a1, function(x) strsplit(x, ' '))
> x <- as.numeric(sapply(a2, function(x) x[1]))
> y <- as.numeric(sapply(a2, function(x) x[2]))


If a matrix is a satisfactory result, rather than two separate vectors:

> sapply(strsplit(gsub("S", "", xx), xx, split = ":"), as.numeric)
     [,1] [,2] [,3] [,4] [,5] [,6]
[1,]   24   24   24   24   24   24
[2,]   57   86  119  129  138  163


Regards,

Marc Schwartz

______________________________________________
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