我有2个变量的这4个函数:
inner.a0b0<- function(tvar,gamma){
return(gamma^(1/2)*(1+tvar)^(-(gamma+1)/2)*exp(-tvar/2))}
K0.inte.func <- function(tvar,gam){return((1-tvar)*(exp(-tvar)-gam^(-1/2)*(1+tvar)^(-(gam+1)/2)*exp(-tvar/2)))}
unit.l.func <- function(tvar,gam){return((1+tvar)^((gam+1)/2)*exp(-tvar/2))}
beta.G <- function(tvar,gam){(1+tvar)^((gam+1)/2)*exp(-tvar/2)*(1-tvar))}
我有2个不同的样本,我从中得到估计的lambda.es = c(lambda.es.1,lambda.es.2)。
然后通过如下整合我有2个组件的2个向量:
K0.deno <- sapply(lambda.es, function(x) integrate(inner.a0b0,lower=0,upper=Inf,gam=x)$value)
K0.inte.val<- sapply(lambda.es, function(x) integrate(K0.inte.func,lower=0,upper=Inf,gam=x)$value)
我现在的目标是:首先,我从unit.l.func和beta.G以及向量K0.deno和K0.inte.val定义2个函数(每个函数对应于lambda.es的一个组件),所以我写这样:
K0.operator.b <- function(tvar, gam, deno,inte.val){res<- beta.G(tvar,gam) - (1-deno)*unit.l.func(tvar,gam)*inte.val
return(res)}
基本上,我希望有2个函数b1.til和b2.til,如下所示:
b1.til <- K0.operator.b(tvar,gam,deno=K0.deno[1],inte.val=K0.inte.val[2])
b2.til <- K0.operator.b(tvar,gam,deno=K0.deno[2],inte.val=K0.inte.val[2])
然后,我再次需要将b1.til和b2.til与gam = lambda.es集成。如果不写两次,我该怎么办? 非常感谢你的期待。任何建议/帮助非常感谢。我对代码的批评也很感激。非常感谢。
答案 0 :(得分:0)
我认为这应该会成功,但实际上你应该为测试提供真正的测试用例。目前我们没有可用于测试的requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"
requiredExtensions="http://www.w3.org/1999/xhtml"
xmlns="http://www.w3.org/2000/svg"
或deno或val值,或者您知道答案应该是什么的任何测试用例。
尝试返回在这两个值可用的位置定义的函数。函数应该然后将它们作为其环境的一部分向前传送。这被称为“封闭”:
data-