Atividade: Corrigir a função Cquantile do Rcpp


Após os ajustes na função Cquantile anterior, chegamos na seguinte função:

#include <Rcpp.h>
using namespace Rcpp;
using namespace std;


// [[Rcpp::export]]
NumericVector Cquantile(NumericVector x, NumericVector probs) {
  Environment stats("package:stats");
  Function quantile = stats["quantile"];
  int npr = probs.size();
  NumericVector res(npr);
  for(int i=0; i<npr; i++){
    res[i] = as<double>(quantile(x, probs[i]));
  }
  return res;
}


Para testar se a nova função Quantile do Rcpp está funcionando de acordo, fizemos um teste para ver se ela está gerando os resultados como o esperado:

## Testando no R se a Cquantile funciona de acordo com o esperado:

> set.seed(22)
> Cquantile(rnorm(1000000,0,1),c(0.025,0.975))
[1] -1.963335  1.960857


Como podemos ver, os valores {~ -1.96; ~ 1.96} estão de acordo com o esperado para os quantis determinados acima.