首页 > 解决方案 > Rstudios sarima 只显示地块

问题描述

我有以下在 Rstudios 中运行的代码:

```{r}
library(astsa)
data = c(1:500)
mo1 = sarima(data,0,0,2)
```

它产生了我感兴趣的五个图和非线性优化例程的输出。我不希望非线性优化的输出但是使用details=FALSE我也将关闭我需要的图来关闭它。

当我在控制台中运行此代码时,绘图被放入 pdf 中,优化输出被打印到 STDOUT。这很好,因为我可以分别拥有我需要的绘图和优化,但是我想在 RStudios 中执行此操作。如何才能做到这一点?

标签: rrstudio

解决方案


看起来该details参数用于返回trace优化器的输出 - 请参见以下行sarima

trc = ifelse(details, 1, 0)

和各种

optim.control = list(trace = trc, REPORT = 1, reltol = tol)

并制作地块

if (details) {
  < code for plots>
}

生成绘图但没有优化器输出的几个选项是:

  1. 捕获优化器的输出:

    mo1 = capture.output(sarima(data,0,0,2))
    

    但是您要么必须解析捕获的输出以获取拟合统计信息,要么需要再次运行sarima( mo1 = sarima(data,0,0,2, details=FALSE)) 以获取统计信息。

  2. 更改函数的主体以更改参数的details作用:

    body(sarima)[[18]] = quote(trc <- abs(details-1)) 
    mo1 = sarima(data,0,0,2, details = TRUE)
    
  3. 另一种选择是要求作者更改函数以分离优化器跟踪和绘图命令(即plot=TRUE在函数签名中添加类型参数并更改if(details)if(plot))。


推荐阅读