<div dir="ltr"><div>Michelle,<br><br></div>Eu tinha me preocupado só com o erro enviado, não com o algoritmo. Olhando com mais atenção, vi que tu está usando o for() para algo que não pode ser feito com for() (ok, até pode, mas não é o ideal). O for() sempre vai passar por todos elementos do vetor informado, mas não é isso que tu quer que faça (tanto que, ao final do dele, tu faz com que j seja igual a j + k). Para fazer o que tu quer, é necessário usar while() ou repeat(). Se eu entendi bem o teu objetivo, segue uma sugestão de solução com while:<br><br><br> v<-c(1,2,5,4,8,9,10,4,2,7,6,8,2)<br> n <- length(v)<br> matrizz<-matrix(NA,13,2)<br> j <- 1<br> while (j <= n) { <br> k <- 1<br> if(v[j]>4){<br> vc<-10*v[j] <br> matrizz[j,1]<-vc<br> while (v[j + k] > 3) { k <- k + 1 } <br> vc2<-7*v[j + k]<br> matrizz[j + k,2]<-vc2<br> }<br> else print("Não houve abertura de processo")<br> j=j+k<br> }<br><br><br></div><div class="gmail_extra"><br><div class="gmail_quote">2016-05-12 10:48 GMT-03:00 Michelle Bau Graczyk <span dir="ltr"><<a href="mailto:mbgraczyk@gmail.com" target="_blank">mbgraczyk@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Oi Rodrigo, primeiro obrigada pela resposta.<div><br></div><div>Acho que ainda não deu certo, porque eu tentei gravar os dados e olha como fica:</div><div><br></div><div><div>> v<-c(1,2,5,4,8,9,10,4,2,7,6,8,2)</div><div>> ts<-ts(v)</div><div>> matrizz<-matrix(NA,13,2)</div><span class=""><div>> for(j in 1:10){</div><div>+ </div><div>+ if(ts[j]>4){</div><div>+ </div></span><div>+ vc<-10*ts[j] </div><div>+ matrizz[k,1]<-vc</div><div>+ for(k in (j+1):10){</div><div>+ </div><span class=""><div>+ if(ts[k]<4){</div><div>+ </div><div>+ vc2<-7*ts[k]</div></span><div>+ matrizz[k,2]<-vc2</div><span class=""><div>+ }</div><div>+ }</div><div>+ </div><div>+ } </div><div>+ else print("Não houve abertura de processo")</div><div>+ j=j+k</div><div>+ </div></span><span class=""><div>+ }</div><div>[1] "Não houve abertura de processo"</div><div>[1] "Não houve abertura de processo"</div><div>[1] "Não houve abertura de processo"</div><div>[1] "Não houve abertura de processo"</div><div>[1] "Não houve abertura de processo"</div></span><div>> vc2 </div><div>[1] 14</div><div>> vc</div><div>[1] 70</div><div>> matrizz</div><div> [,1] [,2]</div><div> [1,] NA NA</div><div> [2,] NA NA</div><div> [3,] NA NA</div><div> [4,] NA NA</div><div> [5,] NA NA</div><div> [6,] NA NA</div><div> [7,] NA NA</div><div> [8,] NA NA</div><div> [9,] NA 14</div><div>[10,] 70 NA</div><div>[11,] NA NA</div><div>[12,] NA NA</div><div>[13,] NA NA</div></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">Em 12 de maio de 2016 10:27, Rodrigo Coster <span dir="ltr"><<a href="mailto:rcoster@gmail.com" target="_blank">rcoster@gmail.com</a>></span> escreveu:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div>Nos 2 comandos, tenta substituir:<br><br><b> for(k in j+1:10){</b><br><br></div>por<br><br> <b>for(k in (j+1):10){<br><br></b></div>Acredito que isso seja suficiente para funcionar<b><br></b></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div>2016-05-12 10:20 GMT-03:00 Michelle Bau Graczyk <span dir="ltr"><<a href="mailto:mbgraczyk@gmail.com" target="_blank">mbgraczyk@gmail.com</a>></span>:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div dir="ltr">Caros, bom dia,<div><br></div><div>Estou com um problema de lógica de programação. O que eu esperava era o seguinte: se ts[j]>4, eu abro uma operação e ela só para quando ts[j]<4. Enquanto uma operação está aberta, não se pode abrir mais nenhuma. Para isso eu tentei fazer de duas formas, usando e não usando o while, mas eu não consegui.</div><div><br></div><div>Alguém teria alguma idéia sobre o que eu ando pensando errado?</div><div><br></div><div>Muito obrigada,</div><div><br></div><div>Michelle</div><div><br></div><div>Primeira opção:</div><div><br></div><div><div>> v<-c(1,2,5,4,8,9,10,4,2,7,6,8,2)</div><div>> ts<-ts(v)</div><div>> </div><div>> for(j in 1:10){</div><div>+ if(ts[j]>4){</div><div>+ #vende</div><div>+ #compra</div><div>+ #compra</div><div>+ vc<-10*ts[j] </div><div>+ while(ts[j+1]>4) j=j+1</div><div>+ for(k in j+1:10){</div><div>+ if(ts[k]<4){</div><div>+ vc2<-7*ts[k]</div><div>+ </div><div>+ }</div><div>+ }</div><div>+ } </div><div>+ else print("Não houve abertura de processo")</div><div>+ j=j+k</div><div>+ vc2</div><div>+ vc</div><div>+ }</div><div>[1] "Não houve abertura de processo"</div><div>[1] "Não houve abertura de processo"</div><div>[1] "Não houve abertura de processo"</div><div>Error in if (ts[k] < 4) { : valor ausente onde TRUE/FALSE necessário</div><div>> vc2 </div><div>[1] 14</div><div>> </div><div>> vc</div><div>[1] 80</div></div><div><br></div><div>Segunda opção:</div><div><br></div><div><div>> v<-c(1,2,5,4,8,9,10,4,2,7,6,8,2)</div><div>> ts<-ts(v)</div><div>> </div><div>> for(j in 1:10){</div><div>+ if(ts[j]>4){</div><div>+ #vende</div><div>+ #compra</div><div>+ #compra</div><div>+ vc<-10*ts[j] </div><div>+ for(k in j+1:10){</div><div>+ if(ts[k]<4){</div><div>+ vc2<-7*ts[k]</div><div>+ </div><div>+ }</div><div>+ }</div><div>+ } </div><div>+ else print("Não houve abertura de processo")</div><div>+ j=j+k</div><div>+ vc2</div><div>+ vc</div><div>+ }</div><div>[1] "Não houve abertura de processo"</div><div>[1] "Não houve abertura de processo"</div><div>[1] "Não houve abertura de processo"</div><div>Error in if (ts[k] < 4) { : valor ausente onde TRUE/FALSE necessário</div><div>> vc2 </div><div>[1] 14</div><div>> </div><div>> vc</div><div>[1] 80</div></div></div>
<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></div>
<br>_______________________________________________<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></div>
</div></div><br>_______________________________________________<br>
R-br mailing list<br>
<a href="mailto:R-br@listas.c3sl.ufpr.br">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></div>