KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
How to convert between year,month,day and dates in R? I know one can do this via strings, but I would prefer to avoid converting to strings, partly because maybe there is a performance hit?, and partly because I worry about regionalization issues, where some of the world uses "year-month-day" and some uses "year-day-month". It looks like ISODate provides the direction year,month,day -> DateTime , although it does first converts the number to a string, so if there is a way that doesn't go via a string then I prefer. I couldn't find anything that goes the other way, from datetimes to numerical values? I would prefer not needing to use strsplit or things like that. Edit: just to be clear, what I have is, a data frame which looks like: year month day hour somevalue 2004 1 1 1 1515353 2004 1 1 2 3513535 .... I want to be able to freely convert to this format: time(hour units) somevalue 1 1515353 2 3513535 .... ... and also be able to go back again. Edit: to clear up some confusion on what 'time' (hour units) means, ultimately what I did was, and using information from How to find the difference between two dates in hours in R? : forwards direction: lh$time <- as.numeric( difftime(ISOdate(lh$year,lh$month,lh$day,lh$hour), ISOdate(2004,1,1,0), units="hours")) lh$year <- NULL; lh$month <- NULL; lh$day <- NULL; lh$hour <- NULL backwards direction: ... well, I didnt do backwards yet, but I imagine something like: create difftime object out of lh$time (somehow...) add ISOdate(2004,1,1,0) to difftime object use one of the solution below to get the year,month,day, hour back
Tags (comma-separated)
Save Edits
Cancel