I'm working with some time data and I'm having problems converting a time difference to years and months.
My data looks more or less like this,
dfn <- data.frame(
Today = Sys.time(),
DOB = seq(as.POSIXct('2007-03-27 00:00:01'), len= 26, by="3 day"),
Patient = factor(1:26, labels = LETTERS))
First I subtract the data of birth (
DOB) form today's data (
dfn$ageToday <- dfn$Today - dfn$DOB
This gives me the
Time difference in days.
Time differences in days
 1875.866 1872.866 1869.866 1866.866 1863.866
 1860.866 1857.866 1854.866 1851.866 1848.866
 1845.866 1842.866 1839.866 1836.866 1833.866
 1830.866 1827.866 1824.866 1821.866 1818.866
 1815.866 1812.866 1809.866 1806.866 1803.866
This is where first part of my question comes in; how do I convert this difference to years and months (rounded to months)? (i.e. 4.7, 4.11, etc.)
I read the
?difftime man page and the
?format, but I did not figure it out.
Any help would be appreciated.
Furthermore, I would like to melt my final object and if I try using melt on the data frame above using this command,
mdfn <- melt(dfn, id=c('Patient'))
I get this strange warning I haven't see before
Error in as.POSIXct.default(value) :
do not know how to convert 'value' to class "POSIXct"
So, my second question is; how do I create a time diffrence I can
melt alongside my
POSIXct variables? If I melt without
dfn$ageToday everything works like a charm.