我需要在R中开发一个函数,它可用于计算时变变量API,定义为:api(t)= k * api(t-1)+ ppt(t)。
ppt=round(c(0.0,0.0,0.0,runif(25, 0.0, 15.5),0.0,0.0),digit=1)
api=c(5.75,rep(NA,29))
k=0.85
f <- function(k,api,ppt,...){
for (i in 2:30){
api[i]=k*api[i-1]+ppt[i]
return(api)}}
f(k=k,api=api,ppt=ppt)
当我应用上面的函数时,我只得到第一个值。 我感谢你的帮助。
答案 0 :(得分:0)
您可以使用简单的递归:
calculateP <- function(startP, t, k, j) {
if (t == 0) {
return (stp)
}
return (k[t]*calcP(stp, t-1, k,j) + j[t])
}
似乎工作得很好。