楼主: zjkky2008
9206 7

[问答] 请大家看看我这段代码有啥问题,为什么会提示“更换参数长度为零”? [推广有奖]

  • 0关注
  • 1粉丝

讲师

0%

还不是VIP/贵宾

-

威望
0
论坛币
836 个
通用积分
0.6294
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
3954 点
帖子
167
精华
0
在线时间
603 小时
注册时间
2010-8-4
最后登录
2021-5-5

10论坛币
pse=rep(0,Iter)
psa=rep(0,Iter)

for (j in c(1:Iter))  {
+   P=rep(0, T)
+   for (i in c(1:T)) {     
+      n=rnorm(1,0,1)
+      temp = exp(r-0.5*(s)^2 + s*n)
+ if(i>=2)
+ P= P[i-1] * temp
+ if(i==1)
+  P=initPrice*temp
+ }
+ pse[j]=P[T]
+   psa[j]=mean(P)
+ }
错误于P = initPrice * temp : 更换参数长度为零

        希望大家帮忙找找原因,多谢~


最佳答案

Ariel1991 查看完整内容

我也出了这个问题,检查了几个小时,才发现是我用了三个for循环,其中之前的是i和j,今天刚在最前面加了个循环,仍然用的i,所以才会报这个错,将第一个改成k就可以了。
关键词:Price Temp ITER Rice Norm
沙发
Ariel1991 发表于 2015-1-11 00:30:57 |只看作者 |坛友微信交流群
我也出了这个问题,检查了几个小时,才发现是我用了三个for循环,其中之前的是i和j,今天刚在最前面加了个循环,仍然用的i,所以才会报这个错,将第一个改成k就可以了。

使用道具

藤椅
zjkky2008 发表于 2015-1-11 09:01:33 |只看作者 |坛友微信交流群
怎么解决呢?

使用道具

板凳
xuruilong100 发表于 2015-1-11 12:59:16 |只看作者 |坛友微信交流群
pse=rep(0,Iter)
psa=rep(0,Iter)

for (j in c(1:Iter))  {
+   P=rep(0, T)
+   for (i in c(1:T)) {     
+      n=rnorm(1,0,1)
+      temp = exp(r-0.5*(s)^2 + s*n)
+ if(i>=2)
+ P【i】= P[i-1] * temp
+ if(i==1)
+  P【i】=initPrice*temp
+ }
+ pse[j]=P[T]
+   psa[j]=mean(P)
+ }



这是欧式和亚式期权的MC模拟吧

使用道具

报纸
zjkky2008 发表于 2015-1-11 13:14:23 |只看作者 |坛友微信交流群
xuruilong100 发表于 2015-1-11 12:59
pse=rep(0,Iter)
psa=rep(0,Iter)
明眼人,还望高手解答~

使用道具

地板
zjkky2008 发表于 2015-1-11 14:53:21 |只看作者 |坛友微信交流群
xuruilong100 发表于 2015-1-11 12:59
pse=rep(0,Iter)
psa=rep(0,Iter)
已经解决了,多谢~

使用道具

7
2320144655 发表于 2017-7-13 21:36:57 |只看作者 |坛友微信交流群
f=read.csv(file.choose(),header=TRUE,sep=",")
f[is.na(f)]<-2
a<-f[,1]
b<-levels(factor(a))
k<-length(b)
for(i in 1:k){
c<-subset(f,f$LICENSEPLATENO==b[i])
c$GPS_TIME<-as.character(c$GPS_TIME)
d<-as.numeric(strptime(c$GPS_TIME,format = "%Y/%m/%d %H:%M"))
data<-sort(d)
e<-c[order(d),]
g<-length(e$EFF)
e[is.na(e$EFF)]<-0
for(j in 2:g){
if(e$EFF[j]==1&e$EFF[j-1]==0&e$EFF[j+1]==1){
print(j)
e<-e[j,]
names(e)<-NULL
write.table(e,file="C:/Users/Administrator/Desktop/b.csv",sep=',',append=TRUE)
}else{next}
}}
运行后提示Error in if (e$EFF[j] == 1 & e$EFF[j - 1] == 0 & e$EFF[j + 1] == 1) { :
  参数长度为零
望高手解答

使用道具

8
1203306368 发表于 2017-10-3 14:21:32 |只看作者 |坛友微信交流群
zjkky2008 发表于 2015-1-11 14:53
已经解决了,多谢~
是什么原因啊,我最经也碰到了

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-12 22:39