Oi Rodrigo, primeiro obrigada pela resposta.

Acho que ainda não deu certo, porque eu tentei gravar os dados e olha como fica:

> v<-c(1,2,5,4,8,9,10,4,2,7,6,8,2)
> ts<-ts(v)
> matrizz<-matrix(NA,13,2)
> for(j in 1:10){
+   
+   if(ts[j]>4){
+     
+     vc<-10*ts[j]  
+     matrizz[k,1]<-vc
+     for(k in (j+1):10){
+       
+       if(ts[k]<4){
+         
+        vc2<-7*ts[k]
+       matrizz[k,2]<-vc2
+       }
+     }
+   
+   }  
+   else print("Não houve abertura de processo")
+   j=j+k
+   
+ }
[1] "Não houve abertura de processo"
[1] "Não houve abertura de processo"
[1] "Não houve abertura de processo"
[1] "Não houve abertura de processo"
[1] "Não houve abertura de processo"
> vc2 
[1] 14
> vc
[1] 70
> matrizz
      [,1] [,2]
 [1,]   NA   NA
 [2,]   NA   NA
 [3,]   NA   NA
 [4,]   NA   NA
 [5,]   NA   NA
 [6,]   NA   NA
 [7,]   NA   NA
 [8,]   NA   NA
 [9,]   NA   14
[10,]   70   NA
[11,]   NA   NA
[12,]   NA   NA
[13,]   NA   NA

Em 12 de maio de 2016 10:27, Rodrigo Coster <rcoster@gmail.com> escreveu:
Nos 2 comandos, tenta substituir:

for(k in j+1:10){

por

for(k in (j+1):10){

Acredito que isso seja suficiente para funcionar

2016-05-12 10:20 GMT-03:00 Michelle Bau Graczyk <mbgraczyk@gmail.com>:
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

_______________________________________________
R-br mailing list
R-br@listas.c3sl.ufpr.br
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.


_______________________________________________
R-br mailing list
R-br@listas.c3sl.ufpr.br
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.