Exercicio entender pq isso funciona: f1 = function(d1, d2) (100 + d1 ^ 2 - d2 ^ 2) / 20 f1(d1, d2) * ifelse(Sit<=2, 1, .5) + 10*(Sit==2) + 7.5*(Sit==3)
Em 26 de abril de 2014 19:50, Evelyn Alecrim <[email protected]>escreveu: > 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 < > [email protected]> 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 <[email protected]>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 < >>> [email protected]> 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 >>>> <[email protected]>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 >>>>> [email protected] >>>>> 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 >>>> [email protected] >>>> 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 >>> [email protected] >>> 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 > > _______________________________________________ > R-br mailing list > [email protected] > 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 [email protected] 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.
