R: Rollapply, сохранить столбец Дата - PullRequest
0 голосов
/ 09 июня 2018

У меня есть набор данных, который включает столбец даты, а другие столбцы являются ежедневными индексными возвратами.Я хотел бы получить скользящее стандартное отклонение для всех индексов, но сохранить дату, чтобы отобразить результаты.Данные выглядят следующим образом:

head(mydata)

        Date      GL1 GL2       US CN       JP       DE       UK
1 1990-01-03  0.02460  NA -0.25889 NA       NA  3.00128  1.20872
2 1990-01-04  0.33681  NA -0.86503 NA       NA -1.82327 -0.49234
3 1990-01-05 -0.81943  NA -0.98041 NA -1.13817 -0.86874 -0.29003
4 1990-01-06       NA  NA       NA NA       NA       NA       NA
5 1990-01-07       NA  NA       NA NA       NA       NA       NA

При использовании функции свертывания дата, однако, исчезает и возвращает NA

require(zoo)

Rolling = as.data.frame(rollapply(mydata,30,sd,na.rm=TRUE,align="right"))

head(Rolling)
 Date       GL1 GL2       US CN        JP       DE        UK
1   NA 0.5527451  NA 1.033204 NA 0.9021960 1.486567 0.8421562
2   NA 0.5675608  NA 1.057156 NA 0.9318496 1.467637 0.7954081
3   NA 0.5681388  NA 1.077253 NA 0.9318496 1.438117 0.8123918
4   NA 0.5663124  NA 1.095049 NA 0.9264034 1.454327 0.8331727
5   NA 0.5623544  NA 1.075118 NA 0.9017324 1.443547 0.8123613
6   NA 0.5523878  NA 1.052310 NA 0.8797660 1.411220 0.8197624

Я сохранил дату в формате as.Date, но не могу понять, какпродолжить показ соответствующих дат в столбце Дата.

1 Ответ

0 голосов
/ 09 июня 2018

Настоящая проблема здесь - использование фреймов данных для представления временных рядов.Если вы используете представление временных рядов, тогда вся проблема исчезнет.

mydata_z <- read.zoo(mydata)
r <- rollapplyr(mydata_z, 30, sd, na.rm = TRUE, fill = NA)

Теперь вы можете использовать plot.zoo, xyplot.zoo или autoplot.zoo для построения графика r с использованием классической графики, решетчатой ​​графики илиГрафика ggplot2 соответственно или если вам нужен фрейм данных, то fortify.zoo(r).

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