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

Michelle Bau Graczyk mbgraczyk em gmail.com
Quinta Maio 12 10:48:45 BRT 2016


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 em 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 em 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 em 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 em 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.
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20160512/5312db88/attachment-0001.html>


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