Почему «недели» от конкретной даты не рассчитываются? - PullRequest
0 голосов
/ 25 июня 2019

У меня есть образец q ниже, который содержит три даты dd/mm/yy в q$test

    test
1 210376
2 141292
3 280280

Я хочу создать новый ковариат q$new, который вычисляет разницу дат от q$test до сегодняшнего дня.

Я пытался

q$new <- as.numeric(difftime(as.Date(q$test,format='%d/%m/%y'), as.Date(Sys.Date()), unit="weeks"))

Но я получаю сообщение об ошибке

Ошибка в q $ new <- as.numeric (difftime (as.Date (q $ test, format =) «% d /% m /% y»),: объект типа «замыкание» не может быть подмножеством </p>

Ты хоть представляешь, что не так? Или есть другое решение?

q <- structure(list(test = c(210376L, 141292L, 280280L)), class = "data.frame", row.names = c(NA, 
    -3L))

1 Ответ

1 голос
/ 25 июня 2019

Вы можете сделать

as.numeric(difftime(Sys.Date(), as.Date(as.character(q$test), "%d%m%y"), units = "weeks"))
#[1] 2257.286 1384.143 2051.714

Несколько указателей -

1) Sys.Date уже имеет класс "Дата", поэтому нет необходимости в as.Date там

2) as.Date ожидал символьную строку в качестве ввода, следовательно, обернутый q$test в as.character

3) format в as.Date используется для представления формата, который мы имеем в качестве ввода, а не выводамы хотим.Итак, в вашем случае вы использовали формат "%d/%m/%y", тогда как у вас был формат %d%m%y.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...