[R] Convert Long DOY time format to yyyymmdd hh format

peter dalgaard pd@|gd @end|ng |rom gm@||@com
Thu Jan 23 10:56:57 CET 2020


Here's an idea:

> as.POSIXct(paste0("1963","-1-1"))+as.difftime(335,units="days") + as.difftime(3, units="hours")
[1] "1963-12-02 03:00:00 CET"

However, 2 caveats

(a) I think you need to subtract 1 from the DOY (1 should be Jan 1, right?)
(b) Beware Daylight Savings time:

> as.POSIXct(paste0("2019","-1-1"))+as.difftime(160,units="days") + as.difftime(3, units="hours")
[1] "2019-06-10 04:00:00 CEST"

This can be worked around as follows:

> tt <- as.POSIXct(paste0("2019","-1-1"))+as.difftime(160,units="days")
> ttl <- as.POSIXlt(tt)
> ttl$hour=0
> ttl + as.difftime(3, units="hours")
[1] "2019-06-10 03:00:00 CEST"

ISOdate() and ISOdatetime() can also be used, again beware of time zones and DST. Also, ISOdate gives 12:00 GMT, whereas the POSIX stuff gives 0:00.

-pd

> On 23 Jan 2020, at 10:24 , Ogbos Okike <giftedlife2014 using gmail.com> wrote:
> 
> Dear Experts,
> I have a data spanning 56 years from 1963 to 2018.
> The datetime format is in DOY hour:
> 1963 335 0
> 1963 335 1
> 1963 335 2
> 1963 335 3
> 1963 335 4
> 1963 335 5
> 1963 335 6
> 1963 335 7
> 1963 335 8
> 1963 335 9
> 1996 202 20
> 1996 202 21
> 1996 202 22
> 1996 202 23
> 1996 203 0
> 1996 203 1
> 1996 203 2
> 1996 203 3
> 2018 365 20
> 2018 365 21
> 2018 365 22
> 2018 365 23
> When I used:
> as.Date(335,origin="1963-01-01"), for the first row, I got:
> [1] "1963-12-02"
> This is the format I want, though it is not yet complete. Time is missing.
> 
> Again, I can't be doing this one after the other. I guess you have a
> better way of handling this. I have spent some time trying to get it
> right but I am really stuck. I would be most glad if you could spare
> your busy time to help me again.
> 
> Thank you very much for your usual kind assistance.
> 
> Best regards
> Ogbos
> 
> ______________________________________________
> R-help using 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.

-- 
Peter Dalgaard, Professor,
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Phone: (+45)38153501
Office: A 4.23
Email: pd.mes using cbs.dk  Priv: PDalgd using gmail.com



More information about the R-help mailing list