как обрабатывать неправильное значение функции difftime() в R?

У меня есть кадр данных и два столбца даты 1st_date и 2nd_date. Я использовал функцию difftime() для расчета разницы по дням, и она выполнила свою работу. Однако я обнаружил неверное значение при проверке всех значений, сгенерированных difftime().

У меня неправильное значение:

    1st_date        2nd_date      time_diff
  12/31/68 12:11   1/13/69 19:29    -36512

пока должно быть:

     1st_date         2nd_date      time_diff
  12/31/68 12:11    1/13/69 19:29      13

команда, которую я использовал:

df$time_diff <- difftime(as.Date(df$1st_date, format="%m/%d/%y"),
                as.Date(df$2nd_date, format="%m/%d/%y"), 
                units = "days")

Кто-нибудь может объяснить, как это произошло и как с этим справиться?


person Ali Algarni    schedule 02.04.2017    source источник
comment
Возможный дубликат преобразования дат до 1 января 1970 г. в R   -  person nrussell    schedule 02.04.2017
comment
попробуй difftime(as.Date(format(as.Date("12/31/68 12:11", format="%m/%d/%y"), "19%y%m%d"), "%Y%m%d"), as.Date(format(as.Date("1/13/69 19:29", format="%m/%d/%y"), "19%y%m%d"), "%Y%m%d"), units = "days")   -  person Mislav    schedule 02.04.2017
comment
это работает отлично. Спасибо!   -  person Ali Algarni    schedule 02.04.2017


Ответы (1)


Решение:

difftime(as.Date(format(as.Date("12/31/68 12:11", format="%m/%d/%y"), "19%y%m%d"), "%Y%m%d"), as.Date(format(as.Date("1/13/69 19:29", format="%m/%d/%y"), "19%y%m%d"), "%Y%m%d"), units = "days")
person Mislav    schedule 02.04.2017