<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p>Obrigado pelo feedback Fernando,</p>
<p>1 - O loop de 999 vezes é para ajustar 999 modelos diferentes?
Que parâmetro você altera em cada loop.</p>
<p>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.</p>
<p>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?</p>
<p>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.</p>
<p>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 } ## ).</p>
<p>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.</p>
<p>Baseada na sua resposta, que também eu não consegui ainda fazer
funcionar, seria:</p>
<br>
<div># #Realizando os ajustes</div>
<p>for(z in 1:999){ <br>
</p>
<div>modelo<-function(dados){</div>
<div> <br>
<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>
<br>
<div> if (mod_ND[[z,c("finIter")]] <= 1){ break } <br>
</div>
<div>}</div>
</div>
}
<br>
<div>list_modelos <- dlply(d,.(Feature),modelo)</div>
<br>
<div>list_modelos</div>
<p> </p>
<p><br>
</p>
<p><br>
</p>
<p><br>
</p>
<pre class="moz-signature" cols="72">--
======================================================================
Alexandre dos Santos
Proteção Florestal
IFMT - Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso
Campus Cáceres
Caixa Postal 244
Avenida dos Ramires, s/n
Bairro: Distrito Industrial
Cáceres - MT CEP: 78.200-000
Fone: (+55) 65 99686-6970 (VIVO) (+55) 65 3221-2674 (FIXO)
<a class="moz-txt-link-abbreviated" href="mailto:e-mails:alexandresantosbr@yahoo.com.br">e-mails:alexandresantosbr@yahoo.com.br</a>
<a class="moz-txt-link-abbreviated" href="mailto:alexandre.santos@cas.ifmt.edu.br">alexandre.santos@cas.ifmt.edu.br</a>
Lattes: <a class="moz-txt-link-freetext" href="http://lattes.cnpq.br/1360403201088680">http://lattes.cnpq.br/1360403201088680</a>
OrcID: orcid.org/0000-0001-8232-6722 - ResearcherID: A-5790-2016
Researchgate: <a class="moz-txt-link-abbreviated" href="http://www.researchgate.net/profile/Alexandre_Santos10">www.researchgate.net/profile/Alexandre_Santos10</a>
LinkedIn: br.linkedin.com/in/alexandre-dos-santos-87961635
Mendeley:www.mendeley.com/profiles/alexandre-dos-santos6/
======================================================================</pre>
<div class="moz-cite-prefix">Em 25/04/2019 11:13, Fernando Souza
escreveu:<br>
</div>
<blockquote type="cite"
cite="mid:236E0160-0BAC-45B9-8669-BBB5A4D1EFEB@getmailspring.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<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>
<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 class="moz-txt-link-rfc2396E" href="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 class="moz-txt-link-abbreviated" href="mailto:e-mails:alexandresantosbr@yahoo.com.br">e-mails:alexandresantosbr@yahoo.com.br</a></div>
<div><a class="moz-txt-link-abbreviated" href="mailto:alexandre.santos@cas.ifmt.edu.br">alexandre.santos@cas.ifmt.edu.br</a></div>
<div>Lattes: <a class="moz-txt-link-freetext" href="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 class="moz-txt-link-abbreviated" href="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 class="moz-txt-link-abbreviated" href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a></div>
<div><a class="moz-txt-link-freetext" href="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 class="moz-txt-link-freetext" href="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>
<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"
moz-do-not-send="true" width="0" height="0">
</blockquote>
</body>
</html>