[R-br] for e If

Evelyn Alecrim evelyn.alecrim em gmail.com
Sábado Abril 26 19:50:26 BRT 2014


Boa noite! Muito obrigada a todos! Testei todas as soluções e elas foram
muito úteis. Realmente faltava a indexação.


Em 25 de abril de 2014 17:05, Leandro Marino <
leandromarino em leandromarino.com.br> escreveu:

> ou seria isto?
>
> ifelse(Sit==1,(100 + d1 ^ 2 - d2 ^ 2) / 20,ifelse(Sit==2,(10 + (100 + d1 ^
> 2 - d2 ^ 2) / 20),(400 + d1 ^ 2 - d2 ^ 2) / 40))
>
>
> Em 25 de abril de 2014 16:51, Márcio Souza <souza.mlm em gmail.com> escreveu:
>
> 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
>>
>>
>>
>> _______________________________________________
>> 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.
>>
>
>


-- 
Evelyn da Fonseca Alecrim Bragion
Bióloga - Mestre em Ecologia Aplicada
Doutoranda em Engenharia Florestal
Laboratório de Ecologia Vegetal
UFLA - Lavras, MG/Brasil
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20140426/937edef0/attachment.html>


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