下面是我写的循环I=3
sigema=0.05
T=7
V=matrix(0,nrow=10000,ncol=560)
VR=matrix(0,nrow=10000,ncol=560)
VF=matrix(0,nrow=10000,ncol=560)
for(N in 1:10000)
{
v=10000
V[N,1]=10000
VR[N,1]=10000*0.2*I
VF[N,1]=v-VR[N,1]
for(i in 2:560)
{
if(y>0)
{
vr=VR[N,i-1]*x[N,i]/x[N,i-1]
vf=VF[N,i-1]*exp(0.0412/365)
v=vr+vf
V[N,i]=v
G=0.8*max(V[N,])
d1=(log(v/G)+0.5*var^2*(T*365-i)/365)/(var*((T*365-i)/365)^0.5)
d2=d1-var*((T*365-i)/365)^0.5
S=v*v*pnorm(d1)/(v*pnorm(d1)+G*(1-pnorm(d2)))
K=v*G*(1-pnorm(d2))/(v*pnorm(d1)+G*(1-pnorm(d2)))
if(VR[N,i-1]>0)
{
if(abs(S/vr-1)>sigema)
{
if(S>vr)
{
VR[N,i]=((S-vr)*0.988+vr)*(1-0.009/365)
VF[N,i]=v*K*(1-0.0068/365)
V[N,i]=VR[N,i]+VF[N,i]
}
else
{
VR[N,i]=S*(1-0.009/365)
VF[N,i]=((vr-S)*0.995+vf)*(1-0.0068/365)
V[N,i]=VR[N,i]+VF[N,i]
}
}
else
{
VR[N,i]=vr*(1-0.009/365)
VF[N,i]=vf*(1-0.0068/365)
V[N,i]=VR[N,i]+VF[N,i]
}
}
else
{
VR[N,i]=S*0.988*(1-0.009/365)
VF[N,i]=K*(1-0.0068/365)
V[N,i]=VR[N,i]+VF[N,i]
}
}
else
{
VR[N,i]=VR[N,i-1]*x[N,i]/x[N,i-1]*(1-0.009/365)
VF[N,i]=VF[N,i-1]*exp(0.0412/365)*(1-0.0068/365)
V[N,i]=VR[N,i]+VF[N,i]
}
}
}
执行时报错:错误于if (abs(S/vr - 1) > sigema) { :
需要TRUE/FALSE值的地方不可以用缺少值
这条语句我已用红色标出。但是我实在看不出哪里写错了,麻烦各位帮忙看看。非常感谢!里面的x,y都已经定义过了。