从r中的for循环获取输出
我试图在R中编写这个for循环代码,但出现了这个错误从r中的for循环获取输出,r,for-loop,R,For Loop,我试图在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 f
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
语法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的向量,并以相同的方式进行迭代。看起来您试图将h作为结果的向量,对吗?如果是,则如果用于子集向量的括号错误,请使用[]。例如字母[2]。这也是一个很好的实践,首先分配你的向量,而不是把你的神奇数字放在for循环中。非常感谢。我的问题解决了。