为什么R函数不会写入环境?

时间:2015-02-04 02:04:19

标签: r for-loop graph plot autoregressive-models

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

1 个答案:

答案 0 :(得分:0)

它不会触发错误或警告,因为您在二进制操作中断了行,但解析器无法识别该二进制操作。使用+ 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)