2

複数の関数を介して同じパラメーターを渡しています。コードの一部は次のようになります

inner.integral <-function(f,n,i,x,odds,alpha,beta)
{ 
 beta.func(x,alpha,beta) * ( beta.prob(alpha,beta) * eval(call(paste("func",as.character(i),as.character(alpha+1),sep=".")),(x*(1+f*odds)))+(1-beta.prob(alpha,beta))*eval(call(paste("func",as.character(i),as.character(alpha),sep=".")),(x*(1-f))))
}

inner.integral.int <- function(f,n,i,x,odds,alpha,beta) {
  integrate(inner.integral,lower=0,upper=1,n=n,i=i,
             x=x,odds=odds,alpha=alpha,beta=beta)
}

inner.integral.int.2 <- function(f,n,i,x,odds,alpha,beta) {
  y <- inner.integral.int(f,n,i,x,odds,alpha,beta)$value
  return(y)
}

にパラメーターを渡すときinner.integral.int.2、optimize 関数を介して、次のようになります。

optimise(inner.integral.int.2,lower=min.f,
          upper=max.f,n=n,i=i,x=x,odds=odds,alpha=a,beta=b)

定義された min.f、max.f、n、i、x などに対して、次のエラーが表示されます。

Error in paste("func", as.character(i), as.character(alpha + 1), sep = ".") : 
  argument "i" is missing, with no default

私は何を間違えましたか?

4

2 に答える 2