0

我正在尝试在 R 中编写一个相对简单的 AR(1) 表示。我找不到此代码的任何明显问题,而且我返回的不是错误,它简单地不是写入环境,或者将 areone2 识别为功能。任何建议将不胜感激。

areone2<-function(y,N,p,d){
  yvec<-c(rep(y, times = N))
  for(i in 1:N){
    yvec[i+1]<-
      ((1+p*(yvec[i]-d))
      + d)
               }
  plot(yvec, type='l', xlab="N", ylab="yeild")
                          }

areone2(.3,10,.9,.2)
4

1 回答 1

0

它不会触发错误或警告,因为您在二进制操作的中间中断了行,但解析器无法识别该二进制操作。+ 3以It's just开头的一行是完全合法的3,这不是您想要的。

例如,我们期望 2 + 3 是 5。但是在新行上 +3 不会将其添加到上一行

> 2        ## break the line here and R returns 2
[1] 2
> +3       ## adding three next is not recognized as a continuation of a call
[1] 3

但是,如果将调用括在括号中(而不是方括号),您仍然可以换行

(2 
 + 3)
# [1] 5   ## correct
{2 
 + 3} 
# [1] 3   ## incorrect

将您的yvec[]<-任务调用放在一条线上是更清洁、更安全的方式。

yvec[i+1] <- ((1+p*(yvec[i]-d)) + d)  
于 2015-02-04T02:11:01.807 回答