Sorteos binomiales aleatorios vectorizados de Rcpp

Esta es una pregunta de continuación de esta:Generando la misma variable aleatoria en Rcpp y R

Estoy tratando de acelerar una llamada vectorizada a rbinom de esta forma:

    x <- c(0.1,0.4,0.6,0.7,0.8)
    rbinom(length(x),1 ,x)

En el código en vivo de x hay un vector de longitud variable (pero típicamente numerado en millones). No tengo experiencia con Rcpp pero me preguntaba si podría usar Rcpp para acelerar esto. A partir de la pregunta vinculada, @Dirk Eddelbuettel sugirió este código Rcpp para llamadas rbinom no vectorizadas:

    cppFunction("NumericVector cpprbinom(int n, double size, double prob) { \
         return(rbinom(n, size, prob)); }")
    set.seed(42); cpprbinom(10, 1, 0.5)

.... y es aproximadamente el doble de rápido que la opción que no es Rcpp, pero no puede manejar mi versión vectorizada

    cpprbinom(length(x), 1, x)

¿Cómo se puede modificar el código Rcpp para implementar esto?

Gracias

Respuestas a la pregunta(2)

Su respuesta a la pregunta