R создание временных рядов с существующими датами из файла

#r #time-series #rscript

#r #временные ряды #rscript

Вопрос:

Я пытаюсь создать график временных рядов, используя R, где получаю даты из запроса REST, а затем я хочу сгруппировать и подсчитать вхождения дат с интервалом в одну неделю. Я следовал примерам ts() в R и пробовал графики, которые отлично работали. Но я не смог найти никаких примеров, показывающих, как создать агрегацию дат на основе существующих данных. Может кто-нибудь указать мне правильное направление?

Это образец моих проанализированных данных REST:

Выдержка из ответа REST ….

 "2014-01-16T14:51:50.000-0800"
"2014-01-14T15:42:55.000-0800"
"2014-01-13T17:29:08.000-0800"
"2014-01-13T16:19:31.000-0800"
"2013-12-16T16:56:39.000-0800"
"2014-02-28T08:11:54.000-0800"
"2014-02-28T08:11:28.000-0800"
"2014-02-28T08:07:02.000-0800"
"2014-02-28T08:06:36.000-0800"
....
  

С уважением,
код B.

Комментарии:

1. Можете ли вы четко указать, что именно вы ищете? Может быть, желаемый результат? aggregate(...) кстати, это хорошая функция для агрегирования данных

Ответ №1:

Вы можете определить дату с помощью «as.Date», а затем создать временные ряды с помощью «xts», поскольку это позволяет объединять по любому периоду времени.

 library(xts)
REST$date <- as.Date(REST$date, format="%Y-%m-%d")
REST$variable <- seq(0,2.4,by=.3)

ts <- xts(REST[,"variable"], order.by=REST[,"date"])

> to.monthly(ts)
         ts.Open ts.High ts.Low ts.Close
Dec 2013     1.2     1.2    1.2      1.2
Xan 2014     0.6     0.9    0.0      0.0
Feb 2014     1.5     2.4    1.5      2.4

> to.weekly(ts)
            ts.Open ts.High ts.Low ts.Close
 2013-12-16     1.2     1.2    1.2      1.2
 2014-01-16     0.6     0.9    0.0      0.0
 2014-02-28     1.5     2.4    1.5      2.4
  

Не уверен, что это то, что вам нужно. Так ли это?

Комментарии:

1. Спасибо! @galman это работает как шарм. Есть ли в библиотеке какая-либо функция, которая может суммировать все значения за месяц / неделю?

2. См. period.apply(), применить. еженедельно(), apply.monthly() и аналогичные: apply.monthly(my_ts.ts, сумма)