R добавление нечастых «событий» в график временных рядов - PullRequest
0 голосов
/ 09 июня 2010

Я только начинаю с R - и зашел в тупик с некоторыми данными временного ряда.

У меня есть временной ряд (дата и значение) в формате 'zoo', который я хочуотмечать крестиком, когда происходит событие.События происходят нерегулярно и в формате csv (только даты, иногда повторяющиеся).

Мне удалось прочитать даты и т. Д. В формате, который принимает R, - но я не могу найти средства длясоставить график основного временного ряда с вторичными событиями, отмеченными сверху?

Обновление: Извините, я пропустил это раньше - ниже приведены данные, с которыми я работаю:

price <- get.hist.quote(instrument = "msft", quote = c("Cl", "Vol"))

Теперь я хочу сравнить количество твитов (для поискового запроса) с этим, но у меня есть только точные данные вида:

"February 28, 2010"
"February 20, 2010"
"February 20, 2010"
"August 21, 2009"

Некоторые повторяются.До сих пор мне удалось написать скрипт на Python для некоторой очистки (т. Е. Кортеж даты, вхождения), но я надеялся, что смогу просто работать с необработанными данными, используя R?

Большое спасибо

Ответы [ 2 ]

2 голосов
/ 14 июня 2010

Создайте серию зоопарка, цену и dd.zoo (где dd.zoo - количество вхождений каждой даты в dd.character как объект зоопарка), а затем просто свяжите их вместе и используйте plot.zoo:

library(zoo)
library(tseries)

price <- get.hist.quote(instrument = "msft", quote = c("Cl", "Vol"))

dd.character <- c("February 28, 2010", "February 20, 2010",
    "February 20, 2010", "August 21, 2009")
dd.Date <- as.Date(dd.character, "%B %d, %Y")
dd.zoo <- aggregate(zoo(dd.Date), dd.Date, length)

plot(cbind(price$Close, dd.zoo), type = c("l", "h"), heights = c(3, 1))

Другая возможность, если вы просто хотите показать закрытие, наложенное вертикальными линиями, иллюстрирующими, какие даты находятся в dd.character, это:

plot(price$Close)
abline(v = time(dd.zoo))
2 голосов
/ 09 июня 2010

Предоставив образец данных, вы получите более точный ответ, но у вас есть два основных варианта:

Используя существующую функцию plot.zoo(), вы можете добавлять аннотации после того, как график закончен с использованием (например)функция text().Или, используя ggplot2, вы можете использовать аналогичный подход для создания графика и добавления аннотаций (хотя он изначально не принимает zoo объекты в качестве входных данных).

В качестве альтернативы chartSeries в quantmod имеет много функций, разработанных для этой цели, и принимает zoo в качестве ввода.

Редактировать:

Один быстрый комментарий о том, как обращаться с даннымичто вы разместили в своем вопросе.Второй набор дат должен быть преобразован в объект зоопарка (возможно, с каким-то указателем в качестве данных, например словом «твит»), а затем объединен с исходной серией.Таким образом, у вас будет дополнительный столбец во временных рядах, который представляет эти редкие события.В большинстве случаев этот столбец будет NA.

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