複数の関数があり、それぞれに関数optim
を繰り返すのではなく、複数の関数があります。私はそうするために他の多くの手動機能を試しました。しかし、私自身のすべての機能は動作しません。その後、私はsapply
機能を使用しようとしましたが、同じ、それは動作しません。例えばサプリー関数を使用してr内の複数の関数に最適関数を適用する
、
my_fun <- function(x,start=c(0,1),mu=c(0.5,2),sd=c(0.3,0.2)){
ll_1 <- function(mu,sd){
-sum(log(dnorm(x,mu[[1]],sd[[1]]))
}
ll_2 <- function(mu,sd){
-sum(log(dnorm(x,mu[[2]],sd[[2]]))
}
## apply ll to different dnorm functions
}
}
optimm_1 <- optim(start,fn=ll_1)
optimm_2 <- optim(start,fn=ll_2)
##私はOPTIM関数が各関数に適用され、私に各1の結果を与えたいです。
x <- rnorm(10,0.5,3) ##to get the data
私はfor
ループ内で機能するようにしました。だから、私の機能を何度も何度も繰り返すのではなく、また、これらの機能すべてを一度に最適化するのに疲れましたが、各機能ごとに繰り返しました。
'' ll'は明らかに機能ではないので、あなたが最適化しているものは明確ではありません。 – Frank
ええ、あなたは正しいです、それは間違いでした。私はそれを更新する。 –
さて、あなたの 'start'は2の長さを持ち、' ll'の最初の引数(唯一の引数 'optim'が見えます)は明らかに長さが1です。' f < - function(par)例えば、-sum(log(dnorm(x、par [1]、par [2]))) 'を実行します。 – Frank