[R-br] Criar função no R com if e for

Benilton Carvalho beniltoncarvalho em gmail.com
Segunda Setembro 29 22:21:56 BRT 2014


e pra quem quiser comecar a brincar com Rcpp....

library(Rcpp)
cppFunction(
    'NumericVector fr0(NumericVector x){
        int n=x.size();
        NumericVector r(n);
        for (int i=0; i<n; i++){
           if (x[i] < -3){
              r[i]=0;
           }else if(x[i] >= -3 & x[i] <=2){
              r[i]=3*x[i];
           }else{
              r[i]=1;
           }
        }
        return r;
     }')
x=c(-5,-4,-3,-2,-1,0,1,2,3,4,5)
fr0(x)


Em 29 de setembro de 2014 22:13, walmes . <walmeszeviani em gmail.com>
escreveu:

> Por questões de desempenho é interessante que se evite aplicar a mestra
> instrução repetidas vezes, como por exemplo x>2. O resultado pode ser
> guardado e depois apenas consultado. Da mesma forma, se você tem o vetor
> lógico de x>2 basta invetê-lo para ter o de x<=2 uma vez que x>2 é igual à
> !(x<=2). Segue a adaptação que fiz do código do Jakson.
>
> fr <- function(x){
>     i <- x< -3
>     j <- x> 2
>     y <- 3*x
>     y[i] <- 0
>     y[j] <- 1
>     y
> }
>
> fr(x)
> curve(fr, -4, 6)
>
> À disposição.
> Walmes.
>>
> _______________________________________________
> 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/20140929/1581d692/attachment.html>


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