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?

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top