2011-03-28 11 views

Respuesta

3

sin

puedo conseguir 10.000 muestras en 3 ms en mi portátil con reemplazo. Sin reemplazo, puedo obtenerlos en 5 ms. Dibujando múltiples veces desde 500 distribuciones lleva 66 ms. ¿Qué tan rápido lo necesitabas?

10

se puede obtener un poco de velocidad en marcha mediante la eliminación de la llamada a la función de base :: muestra:

> x<- rnorm(10000) 
> system.time(for(i in 1:100000) x[.Internal(sample(10000L, 10L, FALSE, NULL))]) 
    user system elapsed 
    2.873 0.017 2.851 
> system.time(for(i in 1:100000) sample(x,10)) 
    user system elapsed 
    3.420 0.025 3.258 

Dependiendo de su problema, puede haber otras formas más inteligentes de acelerar su código. Piense en formas de reemplazar muchas llamadas pequeñas por una grande.

+1

+1 por sugerir que el problema podría ser un montón de pequeñas llamadas a 'sample'. – Aniko

Cuestiones relacionadas