Мне интересно, как перейти к кодированию метода квантилей по умолчанию, используемого R, используя Rcpp. Существует базовое решение здесь Rcpp quantile implementation. Как отмечено в решении, оно не будет работать и для малых векторов.R quantile using Rcpp
Однако, я действительно хотел бы реализовать базовый R (тип 7) метод, показанный здесь https://svn.r-project.org/R/trunk/src/library/stats/R/quantile.R
Основной код выглядит следующим образом:
x <- 1:100 # make a test vector
probs <- c(0.05, 0.95)
n <- length)x)
# R code
index <- 1 + (n - 1) * probs
lo <- floor(index)
hi <- ceiling(index)
x <- sort(x, partial = unique(c(lo, hi)))
qs <- x[lo]
i <- which(index > lo)
h <- (index - lo)[i] # > 0 by construction
qs[i] <- (1 - h) * qs[i] + h * x[hi[i]]
, который, например, дает:
quantile(1:100, probs = c(0.05, 0.95))
5% 95%
5.95 95.05
Это действительно поможет понять, как вы подходите к этому, используя Rcpp. Я использую RStudio и использую для запуска более простой код Rcpp, но я застрял на этом.
Любая помощь будет высоко оценена.
Благодаря
Дэвид