[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