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

______________________________________________
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.

Reply via email to