【发布时间】:2018-11-08 11:51:31
【问题描述】:
我最近更新到最新版本的 R 和 R studio,突然发现 PerformanceAnalytics 包中的 chart.TimeSeries 无法在循环中工作。
例如,如果我在 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 版
【问题讨论】:
-
您是否尝试过在 base R 而不是 Rstudio 中运行代码?
-
在基础 R (R Gui) 中尝试了 plot.xts 版本,这次是 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) -
在 xts github 页面找到了关于这个问题的讨论。在当前版本的 xts 中似乎是一个已知问题 (link)
-
我在 OS X 上遇到同样的问题很久了,至今没有找到解决办法。