Извините, у меня нет воспроизводимого примера здесь.Вычитание дат - разница в часах и секундах?
Может ли кто-нибудь объяснить или угадать, почему одно из этих различий происходит через наши дни, а другое в секундах?
> str(dat)
$ Date.Of.Visit : chr "2010-02-11" "2010-05-13" "2012-10-16" "2014-03-24" ...
$ Date.Diagnosed : chr "2003-08-23" "2003-08-23" "2003-08-23" NA ...
$ Date.Of.Birth : chr "1992-01-19" "1992-01-19" "1992-01-19" NA ...
Все выглядит одинаково.
dat$Date.Of.Visit <- ymd(dat$Date.Of.Visit)
dat$Date.Diagnosed <- ymd(dat$Date.Diagnosed)
dat$Date.Of.Birth <- ymd(dat$Date.Of.Birth)
Все передаются через ту же функцию lubridate.
> class(dat$Date.Of.Visit)
[1] "POSIXct" "POSIXt"
> class(dat$Date.Of.Birth)
[1] "POSIXct" "POSIXt"
> class(dat$Date.Diagnosed)
[1] "POSIXct" "POSIXt"
Все выглядит одинаково.
> (dat$Date.Of.Visit - dat$Date.Of.Birth)[1:10]
Time differences in days
[1] 6598 6689 7576 NA 3043 3141 3218 6784 4813 4974
> (dat$Date.Diagnosed - dat$Date.Of.Birth)[1:10]
Time differences in secs
[1] 365817600 365817600 365817600 NA 256003200 256003200 256003200 243302400 194486400 194486400
Единственное, что я могу думать, Date.Of.Visit завершена, Date.Of.Birth и Date.Diagnosed есть несколько пятен недостающих данных.
И, конечно же, решение должно использовать 'diffftime' явно (с указанным модулем) вместо' -.POSIXt'. – Roland