Векторизованные 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 для реализации этого?

Спасибо

Ответы на вопрос(1)

Ваш ответ на вопрос