2017-10-12 11 views
-2

これはRのループコードのために書こうとしていますが、このエラーが発生します。forループからの出力を得るには

Error in h(i - 1) : could not find function "h" 

どうすればよいですか?

F1<-as.matrix(F_1_) #importing data 
a01=0.1    #importing parameters 
a11=0.1 
b11=0.1 
epsilon=0.5 
a02=0.1 
a12=0.1 
b12=0 
h(0) <- 0.3208 #starting value for h(i) 

for(i in 1:2377) 
{ 
h(i)<- ((a01+a11*h(i-1)*(epsilon^2)*h(i-1)*b11)+F1[,2]*(a02+a12*h(i-1)*(epsilon^2)+h(i-1)*b12)) 
} 
return(h(i))  #getting output from h(i), h(i) depend on h(i-1) and other parameters 
+0

「h」を結果のベクトルにしようとしているようですね。もしあなたがそうであれば、()はベクトルをサブセット化するための間違った括弧で、[]を使います。たとえば、 'letters [2]'のようになります。あなたのベクタを最初に割り当て、forループにあなたのマジックナンバーを入れないことも良い習慣です。 –

+0

ありがとうございました。私の問題は解決しました。 – Guilda

答えて

0

h()は、hが関数であると仮定します。

hを空のリストとして設定し、初期化して繰り返し実行することができます。

h <- list() 
h[[1]] <- 0 # or whatever initial value 
for(i in 2:2377) 
{ 
h[[i]]<- ((a01+a11*h[[i-1]]*(epsilon^2)*h[[i-1]]*b11)+F1[,2]*(a02+a12*h[[i-1]]*(epsilon^2)+h[[i-1]]*b12)) 
} 

また、hを0のベクトルとして初期化して同様の方法で反復することができます。

+0

ありがとうございました。それは解決しました。 – Guilda

関連する問題