Векторизованные Rcpp случайные биномиальные ничьи
Это дополнительный вопрос из этого:Генерация одной и той же случайной величины в Rcpp и R
Я пытаюсь ускорить векторизованный вызов rbinom этой формы:
x <- c(0.1,0.4,0.6,0.7,0.8)
rbinom(length(x),1 ,x)
В живом коде x есть вектор переменной длины (но обычно нумерация в миллионах). У меня нет опыта работы с Rcpp, но мне было интересно, могу ли я использовать Rcpp, чтобы ускорить это. Из связанного вопроса этот код Rcpp был предложен для не векторизованных вызовов rbinom @Dirk Eddelbuettel:
cppFunction("NumericVector cpprbinom(int n, double size, double prob) { \
return(rbinom(n, size, prob)); }")
set.seed(42); cpprbinom(10, 1, 0.5)
.... и примерно в два раза быстрее, чем опция без Rcpp, но не может обработать мою векторизованную версию
cpprbinom(length(x), 1, x)
Как можно изменить код Rcpp для реализации этого?
Спасибо