<div>Veja se entendi bem.</div><div>Mas se eu rodo um modelo para o subgrupo Feature ==A  e um modelo para o subgrupo Featura==B e obtenho os parametros do modelo a1 e a2, e b1 e b2 respectivamente. Eu vou utilizar esses parâmetros para ajustar esses modelo novamente sobre os mesmos dados 999? Faz sentido isso? Acredito que você queira utilizar esses parâmetros como valores iniciais  para outro conjunto de dados.</div><div>Os parametros a1 e a2 do modelo Feature==A  e b1 e b2 do modelo Feature ==B são os melhores parametros do ajuste do modelos , ficar reajustando o modelo com esses parâmetros  como valores iniciais, para o mesmo banco de dados, não alterarar o modelo em nada.</div><br><div>"<span style="color:rgb(35, 31, 32)"><font style="font-size:14.5px"><font style="font-family:Nylas-Pro, Helvetica, "Lucidia Grande", sans-serif">Sim isso não consegui colocar como condição, mas eu queria para quando a iteração para os dois modelos fosse igual a 1, ou n modelos se houverem."</font></font></span></div><div><span style="color:rgb(35, 31, 32)"><font style="font-size:14.5px"><font style="font-family:Nylas-Pro, Helvetica, "Lucidia Grande", sans-serif">Acredito que  afunção nlsLM conte o número de interação para obter o melhor ajuste e limita um valor máximo para nao ficar rodando indefinidamente. Esta contagem é crescente não? </font></font></span></div><div><span style="color:rgb(35, 31, 32)"><font style="font-size:14.5px"><font style="font-family:Nylas-Pro, Helvetica, "Lucidia Grande", sans-serif">Desculpe a pergunta mas estou tentando enteder a questão para propor um solução</font></font></span></div><br><div class="gmail_quote_attribution">On Apr 25 2019, at 12:46 pm, ASANTOS <alexandre.santos@cas.ifmt.edu.br> wrote:</div><blockquote><div><br><div>Obrigado pelo feedback Fernando,</div><br><div>1 -  O loop de 999 vezes é para ajustar 999 modelos diferentes? Que parâmetro você altera em cada loop.</div><br><div>O loop em 999 é para a cada vez que é realizado um ajuste, extrair os novos coeficientes coef(mod_ND[[i]])[1] e coef(mod_ND[[i]])[2] e os coloca no novo ajuste e repete isso n vezes até que a iteração de algum ajuste seja =1. Então necessariamente não precisa rodar 999 vezes, coloquei um número alto, mas imagino que a iteração igual a 1 venha a surgir antes.</div><br><div>2- "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?</div><br><div>Reciclar é a cada novo ajuste utilizar como start values os coef(mod_ND[[i]])[1] e coef(mod_ND[[i]])[2] do ajuste anterior, a menos que a iteração seja igual a 1.</div><br><div>4-  Explique melhor as interações: 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 } ## ).</div><br><div>Sim isso não consegui colocar como condição, mas eu queria para quando a iteração para os dois modelos fosse igual a 1, ou n modelos se houverem.</div><br><div>Baseada na sua resposta, que também eu não consegui ainda fazer funcionar, seria:</div><br><div># #Realizando os ajustes</div><div><div>for(z in 1:999){</div></div><br><div>modelo<-function(dados){</div><div><div>  </div><div>    mod_ND[[z]] < -summary(nlsLM(Diameter ~ a1 * Age^a2,start = list(a1 = 0.1, a2 = 10), control = nls.control(maxiter = 1000), data = dados))</div><div>  </div><div><div>   if (mod_ND[[z,c("finIter")]] <= 1){ break }</div></div><div>}</div></div><div>}</div><div>list_modelos <- dlply(d,.(Feature),modelo)</div><br><div>list_modelos</div><br><br><div><br></div><br><div><br></div><br><div><br></div><br><code><pre style="background-color:rgba(0,0,0,0.05);padding:0.2em 1em">-- <br>======================================================================<br>Alexandre dos Santos<br>Proteção Florestal <br>IFMT - Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso<br>Campus Cáceres<br>Caixa Postal 244<br>Avenida dos Ramires, s/n<br>Bairro: Distrito Industrial <br>Cáceres - MT                      CEP: 78.200-000<br>Fone: (+55) 65 99686-6970 (VIVO) (+55) 65 3221-2674 (FIXO)<br><a href="https://link.getmailspring.com/link/522C999C-97DC-4281-AAE7-236E9F648D2E@getmailspring.com/0?redirect=mailto%3Ae-mails%3Aalexandresantosbr%40yahoo.com.br&recipient=ci1ickBsaXN0YXMuYzNzbC51ZnByLmJy" title="mailto:e-mails:alexandresantosbr@yahoo.com.br">e-mails:alexandresantosbr@yahoo.com.br</a> <br>        <a href="https://link.getmailspring.com/link/522C999C-97DC-4281-AAE7-236E9F648D2E@getmailspring.com/1?redirect=mailto%3Aalexandre.santos%40cas.ifmt.edu.br&recipient=ci1ickBsaXN0YXMuYzNzbC51ZnByLmJy" title="mailto:alexandre.santos@cas.ifmt.edu.br">alexandre.santos@cas.ifmt.edu.br</a> <br>Lattes: <a href="https://link.getmailspring.com/link/522C999C-97DC-4281-AAE7-236E9F648D2E@getmailspring.com/2?redirect=http%3A%2F%2Flattes.cnpq.br%2F1360403201088680&recipient=ci1ickBsaXN0YXMuYzNzbC51ZnByLmJy" title="http://lattes.cnpq.br/1360403201088680">http://lattes.cnpq.br/1360403201088680</a> <br>OrcID: orcid.org/0000-0001-8232-6722   -   ResearcherID: A-5790-2016<br>Researchgate: <a href="https://link.getmailspring.com/link/522C999C-97DC-4281-AAE7-236E9F648D2E@getmailspring.com/3?redirect=http%3A%2F%2Fwww.researchgate.net%2Fprofile%2FAlexandre_Santos10&recipient=ci1ickBsaXN0YXMuYzNzbC51ZnByLmJy" title="http://www.researchgate.net/profile/Alexandre_Santos10">www.researchgate.net/profile/Alexandre_Santos10</a>                       <br>LinkedIn: br.linkedin.com/in/alexandre-dos-santos-87961635<br>Mendeley:www.mendeley.com/profiles/alexandre-dos-santos6/<br>======================================================================</pre></code><div class="moz-cite-prefix"><div>Em 25/04/2019 11:13, Fernando Souza escreveu:</div></div><blockquote><br><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">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></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><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) <a href="https://link.getmailspring.com/link/522C999C-97DC-4281-AAE7-236E9F648D2E@getmailspring.com/4?redirect=mailto%3Ar-br%40listas.c3sl.ufpr.br&recipient=ci1ickBsaXN0YXMuYzNzbC51ZnByLmJy" title="mailto:r-br@listas.c3sl.ufpr.br"><r-br@listas.c3sl.ufpr.br></a> 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><a href="https://link.getmailspring.com/link/522C999C-97DC-4281-AAE7-236E9F648D2E@getmailspring.com/5?redirect=mailto%3Ae-mails%3Aalexandresantosbr%40yahoo.com.br&recipient=ci1ickBsaXN0YXMuYzNzbC51ZnByLmJy" title="mailto:e-mails:alexandresantosbr@yahoo.com.br">e-mails:alexandresantosbr@yahoo.com.br</a></div><div><a href="https://link.getmailspring.com/link/522C999C-97DC-4281-AAE7-236E9F648D2E@getmailspring.com/6?redirect=mailto%3Aalexandre.santos%40cas.ifmt.edu.br&recipient=ci1ickBsaXN0YXMuYzNzbC51ZnByLmJy" title="mailto:alexandre.santos@cas.ifmt.edu.br">alexandre.santos@cas.ifmt.edu.br</a></div><div>Lattes: <a href="https://link.getmailspring.com/link/522C999C-97DC-4281-AAE7-236E9F648D2E@getmailspring.com/7?redirect=http%3A%2F%2Flattes.cnpq.br%2F1360403201088680&recipient=ci1ickBsaXN0YXMuYzNzbC51ZnByLmJy" title="http://lattes.cnpq.br/1360403201088680">http://lattes.cnpq.br/1360403201088680</a></div><div>OrcID: orcid.org/0000-0001-8232-6722 - ResearcherID: A-5790-2016</div><div>Researchgate: <a href="https://link.getmailspring.com/link/522C999C-97DC-4281-AAE7-236E9F648D2E@getmailspring.com/8?redirect=http%3A%2F%2Fwww.researchgate.net%2Fprofile%2FAlexandre_Santos10&recipient=ci1ickBsaXN0YXMuYzNzbC51ZnByLmJy" title="http://www.researchgate.net/profile/Alexandre_Santos10">www.researchgate.net/profile/Alexandre_Santos10</a></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><a href="https://link.getmailspring.com/link/522C999C-97DC-4281-AAE7-236E9F648D2E@getmailspring.com/9?redirect=mailto%3AR-br%40listas.c3sl.ufpr.br&recipient=ci1ickBsaXN0YXMuYzNzbC51ZnByLmJy" title="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a></div><div><a href="https://link.getmailspring.com/link/522C999C-97DC-4281-AAE7-236E9F648D2E@getmailspring.com/10?redirect=https%3A%2F%2Flistas.inf.ufpr.br%2Fcgi-bin%2Fmailman%2Flistinfo%2Fr-br&recipient=ci1ickBsaXN0YXMuYzNzbC51ZnByLmJy" title="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a></div><div>Leia o guia de postagem (<a href="https://link.getmailspring.com/link/522C999C-97DC-4281-AAE7-236E9F648D2E@getmailspring.com/11?redirect=http%3A%2F%2Fwww.leg.ufpr.br%2Fr-br-guia&recipient=ci1ickBsaXN0YXMuYzNzbC51ZnByLmJy" title="http://www.leg.ufpr.br/r-br-guia">http://www.leg.ufpr.br/r-br-guia</a>) e fornea cdigo mnimo reproduzvel.</div></div></blockquote><div><img class="mailspring-open" alt="Sent from Mailspring" style="border:0; width:0; height:0;" src="https://link.getmailspring.com/open/236E0160-0BAC-45B9-8669-BBB5A4D1EFEB@getmailspring.com?recipient=YWxleGFuZHJlLnNhbnRvc0BjYXMuaWZtdC5lZHUuYnI%3D" width="0" height="0"></div></blockquote></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/522C999C-97DC-4281-AAE7-236E9F648D2E@getmailspring.com?recipient=ci1ickBsaXN0YXMuYzNzbC51ZnByLmJy">