
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@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@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.