Проблема с chart.RiskReturnScatter в аналитике производительности, требуется конечная ошибка значений ylim - PullRequest
0 голосов
/ 12 ноября 2018

В настоящее время я пытаюсь создать график рассеяния возврата риска, используя следующий код

chart.RiskReturnScatter(performance[x:y, portfolio.list], Rf = rf, main = "", cex.axis = 1.5, cex.lab = 1.5)

кадр данных производительности [x: y, portfolio.list] отформатирован как:

             HR Muni Bond HR Taxable Bond Composite Portfolio
2017-12-31           NA          -0.006       -0.0025071641
2018-03-31           NA          -0.003       -0.0012671892
2018-06-30           NA           0.007        0.0028773074
2018-09-30           NA          -0.001       -0.0004108567

Я изменил свой код, чтобы заменить NA нулями, полагая, что это исправит ошибку:

chart.RiskReturnScatter(performance[x:y, portfolio.list][is.na(performance[x:y, portfolio.list])]<-0,Rf=rf,main="", cex.axis = 1.5, cex.lab = 1.5)

Нет, это не решило проблему. Я получил следующую ошибку: «Ошибка в checkData (R): данные не могут быть преобразованы во временные ряды. Если вы пытаетесь передать имена из объекта данных с одним столбцом, вы должны использовать форму data [row, columns, drop = FALSE] '. У Rownames должны быть стандартные форматы даты, например' 1985-03-15 '. "

Я вернулся к чертежной доске и добавил tk_xts для приведения кадра данных обратно в формат xts, используя этот код:

chart.RiskReturnScatter(tk_xts(performance[x:y, portfolio.list][is.na(performance[x:y, portfolio.list])]<-0, by 1),Rf=rf,main="", cex.axis = 1.5, cex.lab = 1.5)

Я думаю, что готов к удару 3. Теперь я получаю эту ошибку: «Ошибка в xts :: xts (data, ...): order.by требует соответствующего объекта на основе времени»

Я не уверен, что делать дальше. Любые предложения приветствуются.

Спасибо.

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