Uso de laços e while().

12 Mai
2016
12 Mai
'16
13:20
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

12 Mai
12 Mai
13:27
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. >

13:48
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. >

14:09
Eu não consegui entender exatamente seu problema. Você poderia fornecer um exemplo de como são os dados de entrada, e o que tem que estar saindo? Mas pela sua descrição la em cima, você não quer fazer algo mais ou menos como no exemplo abaixo? v<-c(1,2,5,4,8,9,10,4,2,7,6,8,2) ts_objeto<-ts(v) j=1 operacao=FALSE while(j<=length(v)){ if(v[j]>4) { if(operacao==FALSE){ operacao<-TRUE print(paste("Iniciando operacao com",v[j])) }else{ print(paste(v[j],"em operação")) } } else { if(operacao==TRUE){ operacao=FALSE } print(paste(v[j],"Fora de operação")) } j<-j+1 } Mas acho que você precisa ser mais especifica na descrição do seu problema para ficar mais fácil encontrar ajuda. Em 12 de maio de 2016 09:48, Michelle Bau Graczyk <mbgraczyk@gmail.com> escreveu: > 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. >> > > > _______________________________________________ > 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. > -- Grato Augusto C. A. Ribas Site Pessoal: http://recologia.com.br/ <http://augustoribas.heliohost.org> Github: https://github.com/Squiercg Lattes: http://lattes.cnpq.br/7355685961127056

14:11
Michelle, 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: v<-c(1,2,5,4,8,9,10,4,2,7,6,8,2) n <- length(v) matrizz<-matrix(NA,13,2) j <- 1 while (j <= n) { k <- 1 if(v[j]>4){ vc<-10*v[j] matrizz[j,1]<-vc while (v[j + k] > 3) { k <- k + 1 } vc2<-7*v[j + k] matrizz[j + k,2]<-vc2 } else print("Não houve abertura de processo") j=j+k } 2016-05-12 10:48 GMT-03:00 Michelle Bau Graczyk <mbgraczyk@gmail.com>: > 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. >> > > > _______________________________________________ > 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. >

14:33
Oi Rodrigo e Augusto, muito obrigada, deu certo! Rodrigo, eu as vezes me "embanano" toda tentando usar o while e por isso acabo usando-o de modo errado e tento recorrer ao for(). Mas agora eu acho que entendi de vez: eu não preciso do for para dar continuidade ao laço ( eu achava que além do j=j+k eu precisava usar o for()). Muito obrigada de novo! Michelle Em 12 de maio de 2016 11:11, Rodrigo Coster <rcoster@gmail.com> escreveu: > Michelle, > > 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: > > > v<-c(1,2,5,4,8,9,10,4,2,7,6,8,2) > n <- length(v) > matrizz<-matrix(NA,13,2) > j <- 1 > while (j <= n) { > k <- 1 > if(v[j]>4){ > vc<-10*v[j] > matrizz[j,1]<-vc > while (v[j + k] > 3) { k <- k + 1 } > vc2<-7*v[j + k] > matrizz[j + k,2]<-vc2 > } > else print("Não houve abertura de processo") > j=j+k > } > > > > 2016-05-12 10:48 GMT-03:00 Michelle Bau Graczyk <mbgraczyk@gmail.com>: > >> 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. >>> >> >> >> _______________________________________________ >> 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. >
3382
Idade (dias atrás)
3382
Última atividade (dias atrás)
5 comentários
3 participantes
participantes (3)
-
Augusto Ribas
-
Michelle Bau Graczyk
-
Rodrigo Coster