我在R中有一个函数,该函数需要使用for循环,因为矢量的更高值取决于矢量的先前值。我需要对该函数进行偏导。
我尝试使用Deriv::Deriv
函数,该函数允许您提供函数而不是像deriv
这样的表达式。
我已经简化了我的功能:
fn=function(b1,omega){
R=12
S=10
curmean=rep(b1,R)
for (each in 2:S){
curmean=c(curmean,omega*(curmean[((each-2)*R+1):((each-1)*R)]))
}
curmean
}
fn(.04,.8)
Deriv(fn,x=c('b1'))(.004,.8)
在提供函数输入b1=.04
和omega=.8
时,此代码应返回一个向量,并且返回由b1
的偏导数之后的那些值得出的向量被采取。
Error in Deriv_(a, x[ix], env, use.D, dsym, scache) :
Could not retrieve body of 'for()'
是否有解决方法?也许是用符号语言来创建矢量?