我试图找到解决其他问题的解决方案,但没有一个适合我的需求。
在这个可重现的示例中我得到了错误:
m <- 0
vectorsd<- rep(0.2, 183)
dgmean <- -0.41
rnorm <- as.data.frame(rnorm(183, mean = m, sd = vectorsd))
for (i in 1:length(rnorm$`rnorm(183, mean = m, sd = vectorsd)`)) {
rnorm[,i] <- rnorm(183, mean = m, sd = vectorsd)
}
simulation1 <- matrix(1,184,183)
beta <- -0.21
##For each column (each value of the forward curve)
for (i in 1:length(simulation1[1,])) {
##For each element of a whole column (each day since the starting of the product)
for (j in 1:length(simulation1[,1])-1) {
simulation1[j+1,i] <- simulation1[j,i]+rnorm[j,i]+(beta*(simulation1[j,i]-dgmean))
}
}
我原本希望从第二行开始将simulation1
的每一行替换为转换simulation1[j,i]+rnorm[j,i]+(beta*(simulation1[j,i]-dgmean))
,但是我却得到了这个错误:
simulation1 [j + 1,i]中的错误<-Simulation1 [j,i] + rnorm [j,i] +(beta *: 替换的长度为零
我想念什么?我真的很努力地寻找错字/错误
答案 0 :(得分:1)
这运行没有任何错误:
m <- 0
vectorsd<- rep(0.2, 183)
dgmean <- -0.41
rnorm <- as.data.frame(rnorm(183, mean = m, sd = vectorsd))
for (i in 1:length(rnorm$`rnorm(183, mean = m, sd = vectorsd)`)) {
rnorm[,i] <- rnorm(183, mean = m, sd = vectorsd)
}
simulation1 <- matrix(1,184,183)
beta <- -0.21
##For each column (each value of the forward curve)
for (i in 1:length(simulation1[1,])) {
##For each element of a whole column (each day since the starting of the product)
for (j in 1:(length(simulation1[,1]) - 1)) {
simulation1[i,j] <- simulation1[i,j]+rnorm[i,j]+(beta*(simulation1[i,j]-dgmean))
}
}