Есть ли эффективный способ сгенерировать вектор временной последовательности с tidyverse
и lubridate
? Я знаю, что эти двое могут работать с seq()
, если использовать количество дат в качестве интервала. Например, при вводе:
seq(today(), today()+dyears(1), 60)
можно получить серию свиданий с интервалом в 60 дней
"2017-02-14" "2017-04-15" "2017-06-14" "2017-08-13" "2017-10-12" "2017-12-11" "2018-02-09"
Однако есть ли способ, которым это может работать в течение недель, месяцев и лет? Возможно, что-то похожее на приведенный ниже код, который, как я думал, сработает, но не работает:
seq(as_date(2000-01-01), as_date(2017-01-01), dyears(1))
Ошибка: несовместимые классы продолжительности (продолжительность, числовые). Пожалуйста, уговорите
as.duration
.
Я знаю, что можно изменить dyears(1)
на 365
или 30
, если нужно только приблизительное значение года или месяца, но мне было интересно, есть ли более разумные способы учитывать високосные годы и месяцы.
Чтобы предоставить больше контекста, я хотел бы сгенерировать вектор даты, чтобы я мог настроить scale_x_date
в ggplot
. Вместо того, чтобы позволять waiver()
отображать 2000, 2003, 2006, 2009, я хочу, чтобы график отображал все отдельные годы или даже каждые три месяца, если это возможно.
seq.Date
. Это немного волшебства; Вы можете передать этоby = '2 weeks'
, и он разберется. - person alistaire   schedule 14.02.2017by=
можно указать "недели" и "годы" дляseq()
- person Carl PCH   schedule 14.02.2017?seq
странице, вы, должны также перейти по ссылке на?seq.Date
, где ответ стал бы очевидным. - person IRTFM   schedule 14.02.2017