J'ai plus d'une fonction et au lieu de répéter la fonction optim
à chacune. J'ai essayé beaucoup d'autres fonctions manuelles pour le faire. Cependant, toutes mes propres fonctions ne fonctionnent pas. Ensuite, j'ai essayé d'utiliser sapply
fonctions mais la même chose, ce n'est pas de travail.appliquer la fonction optim à plusieurs fonctions dans r en utilisant la fonction sapply
Par exemple,
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)
## Je veux la fonction optim appliquer à chaque fonction et me donner le résultat de chacun. J'ai essayé de faire fonctionner la boucle for
. Donc, au lieu de répéter ma fonction encore et encore. En outre, je me suis fatigué pour adapter optim à toutes ces fonctions à la fois sans répéter pour chaque fonction.
Ce que vous optimisez n'est pas clair car 'll' n'est manifestement pas une fonction. – Frank
Oui, vous avez raison, c'était une erreur. Je le mets à jour. –
Ok, bien votre 'start' a une longueur de 2 tandis que le' 'premier argument' '(le seul argument' optim' regarde), a apparemment une longueur de 1. vous pouvez faire 'f <- function (par) -sum (log (dnorm (x, par [1], par [2]))) 'à la place, par exemple. – Frank