setting column to datetime in R
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()
.
Related videos on Youtube
ajax2000
Updated on June 04, 2022Comments
-
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 over 7 yearsYou are welcome. Please feel free "accept" (click on tickmark) and/or "upvote" (click on up-arrow) if the answer fits your question.