[R] Better use with gsub

Gabor Grothendieck ggrothendieck at gmail.com
Fri Aug 1 16:54:42 CEST 2014


On Fri, Aug 1, 2014 at 10:46 AM, Doran, Harold <HDoran at 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]))


> library(gsubfn)
> strapply(xx, "\\d+", as.numeric, simplify = TRUE)
     [,1] [,2] [,3] [,4] [,5] [,6]
[1,]   24   24   24   24   24   24
[2,]   57   86  119  129  138  163


-- 
Statistics & Software Consulting
GKX Group, GKX Associates Inc.
tel: 1-877-GKX-GROUP
email: ggrothendieck at gmail.com



More information about the R-help mailing list