我知道这样做可能更优雅 - 但现在我只想了解这个逻辑......我的问题是,当我Y[t]=Y[t-1]+i[t]
为模拟做典型的事情时,它在放入函数时不起作用。我想在每行的时间或 t 1-10 上使用正确的变量值生成一个数据框。现在循环内的猫表明我错了。
这是我的代码:
iter <- 10; i <- rep(0.1,iter);
i <- c(0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0)
Y0 <- 0.25 ; O0 <- 4.16
Y <- rep(0,iter); O <- rep(0,iter)
Tot <- rep(0,iter)
t <- seq(1,iter) #start time and fill vector
Y[1]=Y0 #First iter
O[1]=O0
Tot[1]= Y0+O0
time<-rep(1,iter)#runtime unit
#This is a simplified version of the ICBM function, to test the logic and output
Isim <- function(i, h, Y0, O0,iter,time) {
for (t in 2:iter) {
time<- time+1
Y[t]=(Y[t-1]+i[t-1]); O[t]=(O[t-1]+i[t-1]); Tot[t]=Y[t]+O[t];
simout <- data.frame(i,Y0,O0,Y,O,Tot,time)
cat(time)
}
return(simout)
}
result <- Isim(i, h, Y0, O0,iter, time)