<div>Alexandre , Algumas de suas explicações não estão muito claras para mim. </div><br><div>1 -  O loop de 999 vezes é para ajustar 999 modelos diferentes? Que parametro você altera em cada loop.</div><br><div>2- "<span style="color:rgb(35, 31, 32)"><font style="font-size:14.5px"><font style="font-family:Nylas-Pro, Helvetica, "Lucidia Grande", sans-serif">porém a cada vez que realiza o loop eu gostaria de reciclar os start values através da modificação em coef(mod_ND[[i]])[1]  e  coef(mod_ND[[i]])[2]." .  O que você quer dizer com  "Reciclar" --> modificar para qual valores?</font></font></span></div><br><div>4-  Explique melhor as interações: <span style="color:rgb(35, 31, 32)"><font style="font-size:14.5px"><font style="font-family:Nylas-Pro, Helvetica, "Lucidia Grande", sans-serif">A condição para o loop parar é quando a iteração for igual a 1 para os dois modelos (  if (mod_ND[[z,c(finIter")]] <= ){ break } ## ).</font></font></span></div><br><br><div>Acredito que a solução final para seu problema passe pela seguinte abordagem. No entanto preciso de mais esclarecimentos para melhorar.</div><br><div>library(minpack.lm)</div><div>library(plyr)</div><br><div>##Banco de dados</div><br><div>Feature<-sort(rep(c("A","B"),22))</div><div>Age<-c(60,72,88,96,27,36,48,60,72,88,96,27,36,48,60,72,88,96,27,36,48,60,27,27,36,48,60,72,88,96,27,36,48,60,72,88,96,27,36,48,60,72,88,96)</div><div>Diameter<-c(13.9,16.2,19.1,19.3,4.7,6.7,9.6,11.2,13.1,15.3,15.4,5.4,7,9.9,11.7,13.4,16.1,16.2,5.9,8.3,12.3,14.5,2.3,5.2,6.2,8.6,9.3,11.3,15.1,15.5,5,7,7.9,8.4,10.5,14,14,4.1,4.9,6,6.7,7.7,8,8.2)</div><div>d<-dados <- data.frame(Feature,Age,Diameter)</div><div>str(d)</div><br><div># #Realizando os ajustes</div><br><div>modelo<-function(dados){</div><br><div>    summary(nlsLM(Diameter ~ a1 * Age^a2,start = list(a1 = 0.1, a2 = 10),control = nls.control(maxiter = 1000), data = dados))</div><br><div>}</div><br><div>list_modelos <- dlply(d,.(Feature),modelo)</div><br><div>list_modelos</div><br><div class="gmail_quote_attribution">On Apr 25 2019, at 10:53 am, ASANTOS por (R-br) <r-br@listas.c3sl.ufpr.br> wrote:</div><blockquote><div><div>Prezados Membros,</div><br><div>    Gostaria de fazer um loop (999 vezes) para ajustar dois modelos nls</div><div>(Diameter ~ a1 * Age^a2) à partir de um subset em função da minha</div><div>variável Feature, porém a cada vez que realiza o loop eu gostaria de</div><div>reciclar os start values através da modificação em coef(mod_ND[[i]])[1]</div><div>e  coef(mod_ND[[i]])[2]. A condição para o loop parar é quando a</div><div>iteração for igual a 1 para os dois modelos (  if</div><div>(mod_ND[[z,c(finIter")]] <= 1){ break } ## ). Bom, mas infelizmente não</div><div>esta funcionando não, alguma ideia? Segue CRM:</div><br><div>#Pacote</div><div>library(minpack.lm)</div><br><div># Meu banco de dados onde tenho o Diameter das plantas em função de</div><div>Feature e Age.</div><div>Feature<-sort(rep(c("A","B"),22))</div><div>Age<-c(60,72,88,96,27,</div><div>36,48,60,72,88,96,27,36,48,60,72,</div><div>88,96,27,36,48,60,27,27,36,48,60,</div><div>72,88,96,27,36,48,60,72,88,96,27,</div><div>36,48,60,72,88,96)</div><div>Diameter<-c(13.9,16.2,</div><div>19.1,19.3,4.7,6.7,9.6,11.2,13.1,15.3,</div><div>15.4,5.4,7,9.9,11.7,13.4,16.1,16.2,</div><div>5.9,8.3,12.3,14.5,2.3,5.2,6.2,8.6,9.3,</div><div>11.3,15.1,15.5,5,7,7.9,8.4,10.5,14,14,</div><div>4.1,4.9,6,6.7,7.7,8,8.2)</div><div>d<-dados <- data.frame(Feature,Age,Diameter)</div><div>str(d)</div><br><div>#Realizando os ajustes</div><br><div>e1<- Diameter ~ a1 * Age^a2</div><div>Fecture_vec<-unique(d$Feature)</div><div>mod_ND <- list() #List para salvar cada modelo</div><div>for(i in 1:length(Fecture_vec)){</div><div>     d2 <- subset(d, d$Feature == Fecture_vec[i])</div><div>     mod_ND[[i]] <-  nlsLM(e1, data = d2,</div><div>     start = list(a1 = 0.1, a2 = 10),</div><div>     control = nls.control(maxiter = 1000))</div><div>Xs<-data.frame()</div><div>for(z in 1:999){</div><div>     d2 <- subset(d, d$Feature == Fecture_vec[i])</div><div>     mod_ND[[z]] <-  nlsLM(e1, data = d2,</div><div>     start = list(a1 = coef(mod_ND[[i]])[1], a2 = mod_ND[[i]])[2]),</div><div>     control = nls.control(maxiter = 1000))</div><div>   if (mod_ND[[z,c(finIter")]] <= 1){ break } ## Só para quando</div><div>iteração = 1</div><div>print(summary(mod_ND[[z]]))</div><div>}</div><div>}</div><div>#</div><br><div>Obrigado</div><br><br><br><div>--</div><div>======================================================================</div><div>Alexandre dos Santos</div><div>Proteção Florestal</div><div>IFMT - Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso</div><div>Campus Cáceres</div><div>Caixa Postal 244</div><div>Avenida dos Ramires, s/n</div><div>Bairro: Distrito Industrial</div><div>Cáceres - MT CEP: 78.200-000</div><div>Fone: (+55) 65 99686-6970 (VIVO) (+55) 65 3221-2674 (FIXO)</div><div>e-mails:alexandresantosbr@yahoo.com.br</div><div>alexandre.santos@cas.ifmt.edu.br</div><div>Lattes: http://lattes.cnpq.br/1360403201088680</div><div>OrcID: orcid.org/0000-0001-8232-6722 - ResearcherID: A-5790-2016</div><div>Researchgate: www.researchgate.net/profile/Alexandre_Santos10</div><div>LinkedIn: br.linkedin.com/in/alexandre-dos-santos-87961635</div><div>Mendeley:www.mendeley.com/profiles/alexandre-dos-santos6/</div><div>======================================================================</div><br><div>_______________________________________________</div><div>R-br mailing list</div><div>R-br@listas.c3sl.ufpr.br</div><div>https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</div><div>Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e fornea cdigo mnimo reproduzvel.</div></div></blockquote><img class="mailspring-open" alt="Sent from Mailspring" width="0" height="0" style="border:0; width:0; height:0;" src="https://link.getmailspring.com/open/236E0160-0BAC-45B9-8669-BBB5A4D1EFEB@getmailspring.com?recipient=ci1ickBsaXN0YXMuYzNzbC51ZnByLmJy">