【发布时间】:2017-07-29 00:33:42
【问题描述】:
我试图通过使用我自己的函数“foo”来估计 ARIMA 模型。错误代码在 R 中找不到函数图无处可寻。真的很困扰我。知道这是怎么发生的吗?我试过stats:::plot 还是不行。
```{r warning=FALSE, message=FALSE}
require(forecast)
foo <- function(N, y1=1, p=0.8, q=1-p, seed=NULL, stepwise=TRUE, verbose=0) {
if (!is.null(seed)) set.seed(seed)
y <- c(y1, rep(NA,N-1))
for (i in 2:N) y[i] <- p*y[i-1] + q*rnorm(1)
if (verbose) plot(y, type='l', xlab='time')
return (list(y=y, aa=auto.arima(y, stepwise=stepwise)))
}
v <- foo(N=100, seed=10, verbose=1); v$aa$coef
```
【问题讨论】:
-
将
search()放在plot调用之前,并确保package:stats在你的调用树上 -
@MichaelChirico 谢谢。又试了一次。现在它在搜索中弹出错误(情节):未使用的参数(情节)
-
你没有按我说的做:p
-
您确定
require(forecast)会返回TRUE? 反对使用require代替library的争论很多。在这种情况下,如果包不可用,代码会很高兴地继续运行而不用担心(并且不会通知您。)证明使用require(IMO)的唯一理由是当您的代码执行一件事时,如果包存在(在这种情况下你应该if (require(...))),如果不存在其他东西。顺便说一句:从代码块的系数返回方面打破绘图生成可能更清楚。 -
在我的笔记本电脑上最近的一个例子中,我同时安装了 R-3.3 和 3.4。我现在在 3.3 中完成大部分工作,直到所有内容都经过测试,但是当我编译 Rmd 文件时,它默认为最近安装的。在那种情况下,我使用的许多软件包尚未在 3.4 中安装。 Ergo 为什么我看到一个包安装在 R 的一个实例中,但在编译 Rmd 时它不可用。