[R-br] Uso de laços e while().

Michelle Bau Graczyk mbgraczyk em gmail.com
Quinta Maio 12 10:20:33 BRT 2016


Caros, bom dia,

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.

Alguém teria alguma idéia sobre o que eu ando pensando errado?

Muito obrigada,

Michelle

Primeira opção:

> v<-c(1,2,5,4,8,9,10,4,2,7,6,8,2)
> ts<-ts(v)
>
> for(j in 1:10){
+   if(ts[j]>4){
+     #vende
+     #compra
+     #compra
+     vc<-10*ts[j]
+     while(ts[j+1]>4) j=j+1
+     for(k in j+1:10){
+       if(ts[k]<4){
+        vc2<-7*ts[k]
+
+       }
+     }
+   }
+   else print("Não houve abertura de processo")
+   j=j+k
+   vc2
+   vc
+ }
[1] "Não houve abertura de processo"
[1] "Não houve abertura de processo"
[1] "Não houve abertura de processo"
Error in if (ts[k] < 4) { : valor ausente onde TRUE/FALSE necessário
> vc2
[1] 14
>
> vc
[1] 80

Segunda opção:

> v<-c(1,2,5,4,8,9,10,4,2,7,6,8,2)
> ts<-ts(v)
>
> for(j in 1:10){
+   if(ts[j]>4){
+     #vende
+     #compra
+     #compra
+     vc<-10*ts[j]
+     for(k in j+1:10){
+       if(ts[k]<4){
+        vc2<-7*ts[k]
+
+       }
+     }
+   }
+   else print("Não houve abertura de processo")
+   j=j+k
+   vc2
+   vc
+ }
[1] "Não houve abertura de processo"
[1] "Não houve abertura de processo"
[1] "Não houve abertura de processo"
Error in if (ts[k] < 4) { : valor ausente onde TRUE/FALSE necessário
> vc2
[1] 14
>
> vc
[1] 80
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20160512/6dcfe06d/attachment.html>


Mais detalhes sobre a lista de discussão R-br