Имеют вычитание Lubridide вернуть только числовое значение

StackOverflow https://stackoverflow.com/questions/3765668

  •  04-10-2019
  •  | 
  •  

Вопрос

У меня есть одна переменная под названием 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.

Спасибо, что привлекли его к моему вниманию.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top