<div dir="ltr">Seria isso?<div><br></div><div>l = c(65.1537,62.0723,63.6386,63.9617,63.9687)<br>V = list()<br>s = 1<br>i = 2<br>for (n in 1:(length(l)-1)) {<br> i = i + n -1<br> v = 0<br> for (j in 1:(length(l)-s)) {<br> v = v + (l[i] - l[j])^2<br> i = i+1<br> }<br> v = v / (2*(length(l)-n))<br> i = 2<br> s = s+1<br> V[[paste0(n)]] <- v<br>}<br><br>print(unlist(V))<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Em qui., 24 de jun. de 2021 às 13:50, Luiz Paulo Serrano por (R-br) <<a href="mailto:r-br@listas.c3sl.ufpr.br">r-br@listas.c3sl.ufpr.br</a>> escreveu:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<span style="color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif;font-size:12pt">Prezadas (os)</span><br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<div>Solicito ajuda para corrigir esse código teoricamente bem simples mas que</div>
<div>já tentei e não encontrei o erro.</div>
<div>Agradeço desde já a atenção dispensada.</div>
<div>Luiz Paulo Serrano.</div>
<div><br>
</div>
<div><br>
</div>
<div>#Função Duplo Loop - Correção do código</div>
<div><br>
</div>
<div>#A partir de um vetor qualquer</div>
<div>#Exemplo para um vetor de 5 elementos (normalmente são mais de 30 elementos)</div>
<div>#L1<-c(65.1537,62.0723,63.6386,63.9617,63.9687)</div>
<div>n=5</div>
<div><br>
</div>
<div>#O que a função desenvolvida está fazendo</div>
<div><br>
</div>
<div>loopD<-function(A){ </div>
<div> n<-length(A)</div>
<div>V<-NULL</div>
<div> Vc<-NULL</div>
<div></div>
<div> for (p in 1:(n-1)){</div>
<div>for(i in 1:(n-p)){</div>
<div>V[i]<-(A[i+p]-A[i])^2/(2*(n-p))</div>
<div>}</div>
<div> </div>
<div>print(V)</div>
<div>Vc[p]<-sum(V)} </div>
<div><br>
</div>
<div>print(Vc)</div>
<div><br>
</div>
<div>}</div>
<div><br>
</div>
<div>loopD(L1)</div>
<div>#Saída da função está errada</div>
<div>[1] 1.186878245 0.306661961 0.013049201 0.000006125</div>
<div>[1] 0.382588002 0.594972060 0.018161002 0.000006125</div>
<div>[1] 0.355216000 0.899083240 0.018161002 0.000006125</div>
<div>[1] 0.702112500 0.899083240 0.018161002 0.000006125</div>
<div>[1] 1.5065955 0.9957272 1.2724664 1.6193629 </div>
<div><br>
</div>
<div>#Está fixando quatro parcelas por passo</div>
<div><br>
</div>
<div>#Passo 1: Ve1</div>
<div>1.186878245+0.306661961+0.013049201+0.000006125 = 1.5065955 - OK</div>
<div>quatro parcelas - OK</div>
<div><br>
</div>
<div>#Passo 2: Ve2</div>
<div>0.382588002+0.594972060+0.018161002+0.000006125 = 0.9957272 - Não OK</div>
<div>#quatro parcelas - Não OK</div>
<div>#Valor correto: três parcelas</div>
<div>Ve2: 0.382588002+0.594972060+0.018161002 = 0.9957211 </div>
<div><br>
</div>
<div>#Passo 3: Ve3</div>
<div>0.355216000+0.899083240+0.018161002+0.000006125 = 1.2724664 - Não OK</div>
<div>#quatro parcelas - Não OK</div>
<div>#Valor correto: duas parcelas</div>
<div>0.355216000+0.899083240 = 1.254299</div>
<div><br>
</div>
<div>#Passo 4: Ve4</div>
<div>Ve4: 0.702112500+0.899083240+0.018161002+0.000006125 = 1.6193629 - Não OK</div>
<div>quatro parcelas - Não OK</div>
<div>#Valor correto: uma parcela</div>
<div>0.702112500</div>
<div><br>
</div>
<div>#O que a função deve fazer</div>
<div><br>
</div>
<div>L1<-c(65.1537,62.0723,63.6386,63.9617,63.9687)</div>
<div>n=5</div>
<div><br>
</div>
<div>#Passo 1: quatro parcelas</div>
<div>Ve1<-((L1[2]-L1[1])^2+(L1[3]-L1[2])^2+(L1[4]-L1[3])^2+</div>
<div>(L1[5]-L1[4])^2)/(2*(n-1));Ve1# 1.506596</div>
<div><br>
</div>
<div>Ve1<-(L1[2]-L1[1])^2/(2*(n-1))=1.186878...+(L1[5]-L1[4])^2/(2*(n-1))=6.125e-06</div>
<div><br>
</div>
<div>Ve1=1.186878245+0.306661961+0.013049201+0.000006125 = 1.506596</div>
<div><br>
</div>
<div>#Passo 2: três parcelas</div>
<div>Ve2<-((L1[3]-L1[1])^2+(L1[4]-L1[2])^2+(L1[5]-L1[3])^2)/(2*(n-2));Ve2#0.9957211</div>
<div><br>
</div>
<div>Ve2<-(L1[3]-L1[1])^2/(2*(n-2))=0,382588...+(L1[5]-L1[3])^2/(2*(n-2))=0.018161</div>
<div><br>
</div>
<div>Ve2= 0.382588002+0.594972060+0.018161002 = 0.9957272 </div>
<div><br>
</div>
<div>#Passo 3: duas parcelas</div>
<div>Ve3<-((L1[4]-L1[1])^2+(L1[5]-L1[2])^2) /(2*(n-3));Ve3# 1.254299</div>
<div><br>
</div>
<div>Ve3<-(L1[4]-L1[1])^2</div>
<div><br>
</div>
<div>Ve3=0.355216000+0.899083240 = 1.254299</div>
<div><br>
</div>
<div>#Passo 4: uma parcela</div>
<div>Ve4<-(L1[5]-L1[1])^2/(2*(n-4));Ve4#0.7021125</div>
<div><br>
</div>
<div><br>
</div>
<div>Como corrigir?</div>
<div><br>
</div>
<span></span><br>
</div>
</div>
_______________________________________________<br>
R-br mailing list<br>
<a href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank">R-br@listas.c3sl.ufpr.br</a><br>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" rel="noreferrer" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" rel="noreferrer" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.<br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div><div><div>Daniel Tiezzi, MD, PhD<br></div>Breast Disease and Gynecologic Oncology Division<br></div>Department of Gynecology and Obstetrics<br></div>University of São Paulo<br></div>Brazil<br></div></div>