R может быть удивительно мощным и разочаровывающим одновременно.Это делает обучение R не-статистикам (бизнес-студентам в моем случае) довольно сложным делом.Позвольте мне проиллюстрировать это простой задачей.
Допустим, вы работаете с набором данных временных рядов за месяц.Большинство бизнес-данных обычно отображаются в виде месячных временных рядов.Мы хотели бы построить данные таким образом, чтобы ось X отображала комбинацию месяца и года.Например, январь 2017 года может быть изображен как 2017-01.Это должно быть просто с командой заговора.Не верно.
Генерация данных Давайте проиллюстрируем это на примере.Я сгенерирую случайный временной ряд ежемесячных данных для 120 наблюдений, представляющих 10-летнюю информацию, начинающуюся в январе 2007 года и заканчивающую в декабре 2017 года. Вот код.
set.seed(1234)
x <- rnorm(120)
d <-.07
y <- cumsum(x+d)*-1
Поскольку мы не объявили данные какВременной ряд, нанесение его с помощью команды plot не вернет предполагаемые метки для оси X.См. Код и диаграмму ниже.
plot(y, type="l")
Теперь должна быть опция на сюжете или plot.ts команда для отображения временной оси для определенной оси x.Я не мог найти один.Итак, вот обходной путь.
- Объявите набор данных как временные ряды.
- Используйте tsp и seq для создания необходимых меток оси X.
- Постройте диаграмму, но подавьте ось X.
- Используйте команду оси для добавления пользовательских меток оси X.
- Добавьте дополнительный шаг для рисования вертикальной линии в 2012 году.
Вот код.
my.ts <- ts(y, start=c(2007, 1), end=c(2017, 12), frequency=12)
tsp = attributes(my.ts)$tsp
dates = seq(as.Date("2007-01-01"), by = "month", along = my.ts)
plot(my.ts, xaxt = "n", main= "Plotting outcome over time",
ylab="outcome", xlab="time")
axis(1, at = seq(tsp[1], tsp[2], along = my.ts), labels = format(dates, "%Y-%m"))
abline(v=2012, col="blue", lty=2, lwd=2)
Результат показан ниже.
Это работоспособное решение для большинства исследователей данных.Но если ваша аудитория состоит из студентов или профессионалов, для написания слишком большого количества строк кода.
Вопрос : можно ли построить переменную временного ряда (объект) с помощью команды plot сопция формата, управляющая отображением оси x?
-