[R] Best way to replace :SS with :00

Steve Lianoglou mailinglist.honeypot at gmail.com
Thu Jul 16 21:58:48 CEST 2009


Hi,

> Not sure if there is an R way to do this or a regular express way,  
> but here is what I am trying to do.
>
> I've got lots of data where the format is HH:MM:SS, but I need to  
> format it like HH:MM:00, i.e. round the second down to zero.
>
> What is the best way to do this?


Probably not the best way, but here's one way to do it, step by step:

R> a <- rep("HH:MM:SS", 5)
R> a
[1] "HH:MM:SS" "HH:MM:SS" "HH:MM:SS" "HH:MM:SS" "HH:MM:SS"

R> b <- strsplit(a, ":")
R> b
[[1]]
[1] "HH" "MM" "SS"

[[2]]
[1] "HH" "MM" "SS"

[[3]]
[1] "HH" "MM" "SS"

[[4]]
[1] "HH" "MM" "SS"

[[5]]
[1] "HH" "MM" "SS"

R> b2 <- lapply(b, function(pieces) c(pieces[1:2],"00"))
R> b2
[[1]]
[1] "HH" "MM" "00"

[[2]]
[1] "HH" "MM" "00"

[[3]]
[1] "HH" "MM" "00"

[[4]]
[1] "HH" "MM" "00"

[[5]]
[1] "HH" "MM" "00"

R> a2 <- sapply(b2, paste, collapse=':')
R> a2
[1] "HH:MM:00" "HH:MM:00" "HH:MM:00" "HH:MM:00" "HH:MM:00"

HTH,
-steve

--
Steve Lianoglou
Graduate Student: Physiology, Biophysics and Systems Biology
Weill Medical College of Cornell University

Contact Info: http://cbio.mskcc.org/~lianos/contact




More information about the R-help mailing list