Hello gavinr,

> I have a character string that represents a time duration. It has an hours
> minutes seconds structure(ish) but with letters denoting units (H,M or S) no
> leading zeros and no placeholder at all where one or other of the units are
> not required.
> 
> It looks like this:
> 
> t<-c("10H20M33S","1H1M","1M","21M9S","2H55S" ))
> df<-data.frame(t)
> df
> 
> #ideally should look like:
> t2<-c("10:20:33","01:00:01","00:01:00","00:21:09","02:00:55") 
> df2<-data.frame(t2)
> df2
> 
> I need to get it into hours minutes and seconds either in time format or as
> a string with leading zeros and all three time units represented in each
> one, as in df2.  The data, part of a very large dataset, are for onward use
> and processing in a GIS application.  I’ve messed about with string handling
> statements in SQL to no avail, but wondered if R would be a better bet? 
> I’ve had a look at some of the commands in stringr, but am unsure how to
> operationalise a solution using this package.  Any advice is welcome.
> 


This can be done easily with the substring function, e.g.

# say:

string="12H15M45S"

#then pick:

h=substr(string,1,2)
m=substr(string,4,5)

#  and join again:

newstr = paste(h,m,sep=":")
#  etcetera

Success and
Best regards,

Frank
--


Franklin Bretschneider
Dept of Biology
Utrecht University
brets...@xs4all.nl

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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