Frage

Ich habe eine Variable mit dem Namen Started, die das Datum, an dem menschlichen Probanden in einer Studie und eine andere Variable namens dos1 eingeschrieben, die das Datum, auf dem das Thema letzte Operation hatte. Ich möchte herausfinden, wie viele Monate seit ihrer letzten Operation bis zum Tag der Einschreibung. Ich habe versucht:

as.period(syrrupan$Started-syrrupan$dos1,units=c("month"))

Ich erwartete das mir gibt so etwas wie:

14, 18, 1, 26 

Mit jeder Zahl die Anzahl der Monate.

I Stattdessen erhalten:

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.   

Wie kann ich nur den numerischen Wert von Monaten?

War es hilfreich?

Lösung

Sie könnten mit difftime versuchen stattdessen, das heißt:

difftime(syrrupan$Started,syrrupan$dos1,units="days")

Beachten Sie, dass dies wird Ihnen ein Objekt der Klasse difftime, wenn Sie einen numerischen Vektor wollen, wickeln einen as.numeric um ihn herum. Beachten Sie auch, dass Sie nicht wählen Monate als Option für Einheiten, aber Sie sollten wirklich mit einer Zeiteinheit halten, die eine feste Länge hat.

Andere Tipps

Das ist definitiv ein Fehler in lubridate. Ich habe einen Fehler gemacht Bericht und behebt es für Version 0.1:

http://github.com/hadley/lubridate/issues#issue/75

Vielen Dank für die es um meine Aufmerksamkeit zu bringen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top