Avoir le retour de soustraction lubridate seulement une valeur numérique
Question
J'ai une variable appelée Started
qui est la date à laquelle des sujets humains inscrits dans une étude et une autre variable appelée dos1
qui est la date à laquelle le sujet avait la dernière intervention chirurgicale. Je veux travailler combien de mois depuis leur dernière chirurgie le jour de l'inscription. J'ai essayé:
as.period(syrrupan$Started-syrrupan$dos1,units=c("month"))
J'attendais à ce que me donner quelque chose comme:
14, 18, 1, 26
Avec chaque numéro étant le nombre de mois.
Au lieu de cela, je reçois:
1 year, -4 months, -5 days and -1 hours 1 year, -5 months, -23 days and -1 hours 1 year, -7 months, 2 days and -1 hours 1 year, -8 months, -28 days and 1 hour 1 year, -7 months, -23 days and 1 hour.
Comment puis-je obtenir juste la valeur numérique des mois?
La solution
Vous pouvez essayer d'utiliser à la place difftime
, à savoir:
difftime(syrrupan$Started,syrrupan$dos1,units="days")
Notez que cela vous donnera un objet de difftime
de classe, si vous voulez un vecteur numérique, envelopper un as.numeric
autour d'elle. Notez également que vous ne pouvez pas choisir des mois comme une option pour les unités, mais vous devez vraiment rester avec une unité de temps qui a une longueur fixe.
Autres conseils
C'est certainement un bug dans lubridate. J'ai fait un rapport d'erreur et le corriger pour la version 0.1:
http://github.com/hadley/lubridate/issues#issue/75
Merci pour le porter à mon attention.