احصل على إرجاع الطرح اللوبريديت فقط قيمة رقمية
سؤال
لدي متغير واحد يسمى Started
وهو التاريخ الذي التحق به الموضوعات البشرية في دراسة ومتغير آخر يسمى dos1
وهو التاريخ الذي أجرى فيه الموضوع آخر عملية جراحية. أريد أن أعمل على عدد أشهر منذ آخر عملية جراحية ليوم التسجيل. حاولت:
as.period(syrrupan$Started-syrrupan$dos1,units=c("month"))
كنت أتوقع أن يعطيني هذا شيئًا مثل:
14, 18, 1, 26
مع كل رقم هو عدد أشهر.
بدلاً من ذلك أحصل على:
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.
كيف يمكنني الحصول على القيمة الرقمية للأشهر؟
المحلول
يمكنك محاولة استخدام difftime
بدلاً من ذلك ، أي:
difftime(syrrupan$Started,syrrupan$dos1,units="days")
لاحظ أن هذا سيعطيك كائنًا من الفصل difftime
, ، إذا كنت تريد متجهًا رقميًا ، لف as.numeric
حولها. لاحظ أيضًا أنه لا يمكنك اختيار أشهر كخيار للوحدات ، ولكن يجب أن تلتزم حقًا بوحدة زمنية لها طول ثابت.
نصائح أخرى
هذا بالتأكيد خطأ في Lubridate. لقد قمت بإجراء تقرير خطأ وسأصلحه للإصدار 0.1:
http://github.com/hadley/lubridate/issues#issue/75
شكرا للفت إنتباهي.