Я хотел бы создать график временных рядов в R, который сравнивает этот год с прошлым годом. Я хотел бы использовать даты этого года в качестве оси x.r - карта даты от нескольких лет до одного года
Какова функция, которая, учитывая набор дат от 2 или более лет, сделает их одинаковыми годами? Пример
данных:
mydata <- data.frame(
date.col = as.Date(c('2014-05-23', '2014-05-24', '2014-05-25', '2015-05-23', '2015-05-24', '2015-05-25', '2016-05-23', '2016-05-24', '2016-05-25')),
value = c(10,23,15,13,26,17,22,30,19))
date.col value
1 2014-05-23 10
2 2014-05-24 23
3 2014-05-25 15
4 2015-05-23 13
5 2015-05-24 26
6 2015-05-25 17
7 2016-05-23 22
8 2016-05-24 30
9 2016-05-25 19
Ожидаемый результат:
date.col value adj.date
1 2014-05-23 10 2016-05-23
2 2014-05-24 23 2016-05-24
3 2014-05-25 15 2016-05-25
4 2015-05-23 13 2016-05-23
5 2015-05-24 26 2016-05-24
6 2015-05-25 17 2016-05-25
7 2016-05-23 22 2016-05-23
8 2016-05-24 30 2016-05-24
9 2016-05-25 19 2016-05-25
В идеале, функция может легко поместиться в dplyr цепи:
mydata %>% normalize.dates(date.col, fit.to='2016') %>% ggplot(...)
'формат (х, «% j») 'превратит все в Юлиана, тогда вы можете построить его и добавить ось x на основе позиционирования Юлиана. Или даже поставить юлианские даты по дну. Високосные годы делают вещи интересными. В противном случае ваше решение должно быть прекрасным. – Badger