我正在尝试检验用于评估股票期权的假设的盈利能力。以下是我正在尝试做的简化版本。当评估变量(eee)低于-1时,我要购买它,然后我要 保持直到它回到-1以上(而不是继续买入)。因此,我试图为eee低于-1时创建一个逻辑向量(fff)。然后,根据fff是否为TRUE以及其前一个分量为FALSE来假设ggg是逻辑向量。
eee <-NULL
for(i in 1:500){
eee[i] <- rnorm(n= 500)
}
fff <- eee <= -1
ggg <- NULL
for(i in 1:500){
if(fff[i - 1] == FALSE){
ggg[i] <- fff[i]
}else{
ggg[i] <- FALSE
}
}
一切正常,直到最后一个for循环返回以下内容:
Error in if (fff[i - 1] == FALSE) { : argument is of length zero
答案 0 :(得分:0)
我很确定你想这样做。您为eee
设计的循环只是用随机的高斯变量替换了很多次,因此没有必要,并且由于您要查找i-1
,因此必须从2开始一个循环。
eee <- rnorm(n= 500)
fff <- eee <= -1
ggg <- vector(mode = "logical", length = 500)
for(i in 2:500){
if(fff[i - 1] == FALSE){
ggg[i] <- fff[i]
}else{
ggg[i] <- FALSE
}
}