setting column to datetime in R

17,715

That is a somewhat degenerate format, but the anytime() and anydate() functions of the anytime package can help you, without requiring any explicit format strings:

R> anytime("20130501000000")       ## returns POSIXct
[1] "2013-05-01 CDT"
R> anydate("20130501000000")       ## returns Date
[1] "2013-05-01"
R> 

Not that we parse from character representation here -- parsing from numeric would be wrong as we use a conflicting heuristic to make sense of dates stored a numeric values.

So here your code would just become

data1$data <- anytime::anydate(data1$date)

provided data1$date is in character, else wrap one as.character() around it.

Lastly, if you actually want Datetime rather than Date (as per your title), don't use anydate() but anytime().

Share:
17,715

Related videos on Youtube

ajax2000
Author by

ajax2000

Updated on June 04, 2022

Comments

  • ajax2000
    ajax2000 almost 2 years

    The date in my dataset is like this: 20130501000000 and I'm trying to convert this to a better datetime format in R

    data1$date <- as.Date(data1$date, format = "%Y-%m-%s-%h-%m-%s")
    

    However, I get an error for needing an origin. After I put the very first cell under date in as origin, it converts every cell under date to N/A. Is this right or should I try as.POSIXct()?

  • Dirk Eddelbuettel
    Dirk Eddelbuettel over 7 years
    You are welcome. Please feel free "accept" (click on tickmark) and/or "upvote" (click on up-arrow) if the answer fits your question.