Я строю еженедельные цифры, которые переходят с 2018 на 2019, а отметки на моей оси X представляют год, а затем неделю.
Например:
2018-50, 2018-51, 2018-52, 2018-53, 2019-01, 2019-02, 2019-03
У меня есть два фрейма данных, и даты в обоих не всегда будут одинаковыми. Таким образом, одно из решений, которое я подумал, может сработать, чтобы найти самое низкое значение yearWeek
в любом фрейме данных и максимальное значение yearWeek
в любом фрейме данных, а затем создать последовательность, используя эти два значения. Обратите внимание, что оба значения могут существовать в одном фрейме данных или один фрейм данных может иметь самое низкое / самое раннее значение, а другое - самое высокое / самое последнее значение.
Оба фрейма данных выглядят так:
week yearWeek month day date
1 31 2018-31 2018-08-01 Wed 2018-08-01
2 31 2018-31 2018-08-01 Thu 2018-08-02
3 31 2018-31 2018-08-01 Fri 2018-08-03
4 31 2018-31 2018-08-01 Sat 2018-08-04
5 32 2018-32 2018-08-01 Sun 2018-08-05
6 32 2018-32 2018-08-01 Mon 2018-08-06
Я искал решение, и этот ответ почти готов, но не совсем.
Проблемы с этим решением:
- Номер недели, состоящий из одной цифры, не имеет
0
перед ними; и
- Несмотря на указание, например,
seq(31:53)
, вывод начинается с 1
(я знаю, почему это происходит); и
- Похоже, что нет способа остановить счет на
53
, используя этот метод (у 2018 была (короткая) 53-я неделя, которую я хотел бы включить) и возобновить с 2019-01
и далее.
Я хочу иметь возможность установить диапазон оси X от 2018-31
(31-я неделя 2018 года) до 2019-13
(13-я неделя 2019 года).
Примерно так:
Короче говоря, как я могу создать последовательность значений год-неделя в диапазоне от минимального значения даты до максимального значения даты (в данном случае 2018-31
- 2019-13
)?