R chart.Timeseries в цикле не работает

Недавно я обновился до самых последних версий R и R studio, и вдруг chart.TimeSeries из пакета PerformanceAnalytics не работает внутри цикла.

Например, если я выделю приведенный ниже код в Rstudio и запущу его, он будет выполнен без ошибок (что вы можете подтвердить, проверив значение i = 3 после запуска), но графики не будут созданы.

library(PerformanceAnalytics)
library(xts)
ts1 <- xts(1:12, order.by = as.Date("2018-05-01") + (-11:0))
i <- 0
for (i in 1:3) chart.TimeSeries(ts1)

Однако, если я заменю

for (i in 1:3) chart.TimeSeries(ts1)

с

chart.TimeSeries(ts1)
chart.TimeSeries(ts1)
chart.TimeSeries(ts1)

затем 3 участка производятся, как и ожидалось. Кто-нибудь видел или заметил это раньше или объяснил это?

Обновление: то же самое произойдет, если я использую plot.xts (это то, что chart.TimeSeries использует под капотом) вместо chart.TimeSeries.

> version
               _                           
platform       x86_64-w64-mingw32          
arch           x86_64                      
os             mingw32                     
system         x86_64, mingw32             
status                                     
major          3                           
minor          5.0                         
year           2018                        
month          04                          
day            23                          
svn rev        74626                       
language       R                           
version.string R version 3.5.0 (2018-04-23)
nickname       Joy in Playing  

Версия R-Studio 1.1.423. PerformanceAnalytics версии 1.5.2, xts версии 0.10-2


person Malcolm Hawkes    schedule 29.05.2018    source источник
comment
Вы пытались запустить код в базе R, а не в Rstudio?   -  person Freguglia    schedule 30.05.2018
comment
Пробовал версию plot.xts в базе R (R Gui), на этот раз версию R 3.4.3 (как 32-, так и 64-разрядную), но ту же версию xts. Появляется окно графического устройства, но внутри оно остается серым, изображения нет. Так что for (i in 1:3) {cat(sprintf("i = %d\n", i)) ; plot(1:10, 1:10)} в порядке, а for (i in 1:3) {cat(sprintf("i = %d\n", i)) ; plot.xts(ts1)} нет. Это все версии Windows (7 и 10), кстати.   -  person Malcolm Hawkes    schedule 30.05.2018
comment
Нашел обсуждение этой проблемы на странице xts github. Похоже на известную проблему (ссылка) в текущей версии xts   -  person Malcolm Hawkes    schedule 30.05.2018
comment
У меня была такая же проблема в течение длительного времени на OS X и до сих пор не нашел решения.   -  person Jared Marks    schedule 10.08.2018


Ответы (1)


Я только что запустил ваш пример, и действительно, мой результат такой же, как у вас. я изменил

for (i in 1:3) chart.TimeSeries(ts1)

to

for (i in 1:3) print(PerformanceAnalytics::chart.TimeSeries(ts1))

и теперь все 3 диаграммы правильно отображаются на моей панели графиков в rstudio (я также использую последние версии). Надеюсь, это ответит на вашу проблему.

person tchevrier    schedule 22.08.2018