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

二項演算の途中で改行したため、エラーや警告は発生しませんが、その二項演算はパーサーによって認識されませんでした。+ 3It '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[]<-られた電話を 1 つの回線にまとめることは、よりクリーンで安全な方法です。

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