为什么R函数不写入环境



我正试图在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)

它不会触发错误或警告,因为您在二进制操作的中间断线,但解析程序无法识别该二进制操作。以+ 3开头是完全合法的。这只是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)  

相关内容

  • 没有找到相关文章

最新更新