Имеют вычитание Lubridide вернуть только числовое значение
Вопрос
У меня есть одна переменная под названием 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
вокруг него. Обратите внимание, что вы не можете выбрать месяцы в качестве опции для устройств, но вы должны действительно придерживаться единицы времени, который имеет фиксированную длину.
Другие советы
Это определенно ошибка в Лубридации. Я сделал сообщение об ошибке и исправит его для версии 0.1:
http://github.com/hadley/lubridate/issues#issue/75.
Спасибо, что привлекли его к моему вниманию.