Romain Francois wrote: > strapply in package gsubfn brings elegance here: > > > txt <- '<foo>bar</foo>' > > rx <- "<(.*?)>(.*?)</(.*?)>" > > strapply( txt, rx, c , perl = T ) > [[1]] > [1] "foo" "bar" "foo" >
sure, but this does not, in any way, make it less strange that gsub is not vectorized. > Too bad you have to pay this on performance: > > > txt <- rep( '<foo>bar</foo>', 1000 ) > > rx <- "<(.*?)>(.*?)</(.*?)>" > > system.time( out <- strapply( txt, rx, c , perl = T ) ) > user system elapsed > 2.923 0.005 3.063 > > system.time( out2 <- sapply( paste('\\', 1:3, sep=''), function(x){ > + gsub(rx, x, txt, perl=TRUE) > + } ) ) > user system elapsed > 0.011 0.000 0.011 strapply and you know why. vQ ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel