[R-br] for e If
Márcio Souza
souza.mlm em gmail.com
Sexta Abril 25 16:51:43 BRT 2014
Gente,
Da maneira que está o script, k vai ser um vetor... não uma constante, como
Emily quer, suponho.
E outra: a cada volta do loop, k é substituído por um novo vetor...
Emily: k é um vetor mesmo, como estou pensando?? Ou... k era pra ser uma
constante? (dependendo da resposta, a solução se torna mais tranquila).
Abs.
Em 25 de abril de 2014 16:37, Luciano F. Sgarbi
<luciano.f.sgarbi em gmail.com>escreveu:
> Seria isso?
> for(i in Sit){
> if(i==1){
> k<-(100 + d1 ^ 2 - d2 ^ 2) / 20
>
> } else if(i==2){
> k<-(10 + (100 + d1 ^ 2 - d2 ^ 2) / 20)
> } else {
> k<-(400 + d1 ^ 2 - d2 ^ 2) / 40
> }
> print(k)
> }
>
>
> Em 25 de abril de 2014 16:30, Evelyn Alecrim <alecryn em yahoo.com.br>escreveu:
>
>> Boa tarde,
>>
>> Tenho a seguinte situação, tenho três variáveis: Sit, d1 e d2. Gostaria
>> que um valor (k) fosse calculado levando em consideração o valor de Sit, ou
>> seja, para cada Sit uma fórmula diferente seria usada, como abaixo.
>>
>> Sit=c(3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
>> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
>>
>> d1=c(1.27, 5.80, 2.42, 3.11, 5.25, 4.74, 5.42, 5.14, 5.27, 5.61,
>> 6.09, 6.38, 6.34, 8.60,
>> 7.36, 9.96, 10.86, 11.35, 8.94, 9.19, 8.66, 8.98, 9.86,
>> 9.94, 11.59, 15.61,
>> 6.28, 7.83, 7.94, 7.67, 8.62, 9.43, 9.00)
>>
>> d2=c(9.12, 10.81, 10.21, 7.11, 7.23, 7.62, 7.69, 7.59, 5.73,
>> 5.39, 5.35, 5.42, 5.32, 3.84, 2.89, 0.70, 1.65, 2.32, 4.01,
>> 4.16, 4.32, 4.74, 5.12, 3.01, 1.91, 7.33,
>> 3.81, 2.27, 2.22, 4.44, 4.76, 7.35, 7.35)
>>
>> for(i in 1:seq_along(Sit)){
>> if(Sit==1){
>> k<-(100 + d1 ^ 2 - d2 ^ 2) / 20
>>
>> } else if(Sit==2){
>> k<-(10 + (100 + d1 ^ 2 - d2 ^ 2) / 20)
>> } else {
>> k<-(400 + d1 ^ 2 - d2 ^ 2) / 40
>> }
>> print(k)
>> }
>>
>> No entanto, o R me retorna a seguinte mensagem:
>>
>> [1] 7.960963 7.919597 7.540307 8.978000 9.382240 9.110080 9.256007
>> 9.220288 9.873500 10.060500 10.211640 10.283200 10.297330 11.480360
>> 11.145437
>> [16] 12.467790 12.880427 13.086003 11.596087 11.678762 11.408330
>> 11.454320 11.775130 12.243588 13.267000 14.748580 10.623057 11.403900
>> 11.452880 10.977882
>> [31] 11.291170 10.872560 10.674437
>> Mensagens de aviso perdidas:
>> 1: In 1:seq_along(Sit) :
>> expressão numérica tem 33 elementos: somente o primeiro usado
>> 2: In if (Sit == 1) { :
>> a condição tem comprimento > 1 e somente o primeiro elemento será usado
>> 3: In if (Sit == 2) { :
>> a condição tem comprimento > 1 e somente o primeiro elemento será usado
>>
>>
>> Parece que ele está calculando usando apenas a terceira fórmula. Alguém
>> pode dar uma luz?
>> Obrigada,
>> Emily
>>
>> _______________________________________________
>> 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.
>>
>
>
>
> --
>
>
> *Luciano F. Sgarbi *
>
> * Currículo Lattes <http://lattes.cnpq.br/9788198135883354> **Dep.
> Ecologia, Instituto de Ciências Biológicas I*
> *Universidade Federal de Goiás, campus II, Goiânia-GO, Brasil*
>
> _______________________________________________
> 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.
>
--
Prof. Márcio Souza, M.Sc.
*Pesquisador - UFJF *
*Professor - INSTITUTO VIANNA JÚNIOR (JF)*
* INSTITUTO METODISTA GRAMBERY (JF)*
http://lattes.cnpq.br/4578008002785684
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20140425/6a63d7ae/attachment.html>
Mais detalhes sobre a lista de discussão R-br