Here are several solutions: #1 # replace first three and last 3 characters with nothing x <- c("23:10:34", "01:02:03") gsub("^...|...$", "", x)
#2 # backref = -1 says extract the portion in parens # it would have returned a list so we use simplify = c library(gsubfn) strapply(x, ":(..):", backref = -1, simplify = c) #3 # convert to POSIXct and use POSIXct's format library(chron) format(as.POSIXct(as.chron(times(x))), "%M") #4 # chron times are fractions of a day # this gives numeric result whereas others give character library(chron) floor(24 * 60 * as.numeric(times(x))) %% 60 On Wed, Oct 15, 2008 at 5:54 PM, Redding, Matthew <[EMAIL PROTECTED]> wrote: > Hi All, > > Is there a means to extract the "10" from "23:10:34" in one pass using > strsplit (or something else)? > tst <- "23:10:34" > > For example my attempt > strsplit(as.character(tst),"^[0-9]*:") > gives > [[1]] > [1] "" "" "34" > > Obviously it is matching the first two instances of [0-9]. Note that > there may be only one digit before the first ":". > > How do I anchor the match to the begginning or better still, just > extract the number I want in one pass? > > I can see that I can add "begin" to the beginning of the string, and > match that and do something similar at the end, getting rid of empty > strings > etc - but I think it would take about 3 passess - and the files are > large. And besides that code would be unlovely. > > Kind regards, > > > Matt Redding > ********************************DISCLAIMER**************...{{dropped:15}} > > ______________________________________________ > 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. > ______________________________________________ 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.