Thanks guys. The first solution with the gsub / lapply works perfectly. The
solution using substrings would work if the times were in a consistent
format, but without the leading zeros and with some parts of the string
absent completely it would need some extra logic to apply. I need something
to a
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
Regular expressions are the tool for this problem. This pattern
matches your input data:
t <- c("10H20M33S", "1H1M", "1M", "21M9S", "2H55S")
patt <- "^(([0-9]+)H)?(([0-9]+)M)?(([0-9]+)S)?$"
all(grepl(patt, t)) # TRUE
We can use the pattern to extract hour/minute/second components
hms <- lapply(c
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
4 matches
Mail list logo