[R-es] optimización de código en R
Carlos J. Gil Bellosta
cgb en datanalytics.com
Jue Ene 17 20:39:55 CET 2013
Hola, ¿qué tal?
Prueba esta alternativa:
sim2 <- function(nreps) {
nb1 <- 10 # 10 blue marbles in Urn 1
nb2 <- 6 # 6 blue marbles orig. in Urn 2
n1 <- 18 # number of marbles in Urn 1 at 1st pick
n2 <- 13 # number of marbles in Urn 2 at 2nd pick
count <- 0 # number of repetitions in which get blue from Urn 2
nb2 <- nb2 + (runif(nreps) < nb1 / n1)
mean( runif(nreps) < nb2 / n2 )
#return(count/nreps) # est. P(pick blue from Urn 2)
}
> system.time(sim1(10000))
user system elapsed
0.092 0.000 0.094
> system.time(sim2(10000))
user system elapsed
0.000 0.000 0.001
Un saludo,
Carlos J. Gil Bellosta
http://www.datanalytics.com
2013/1/17 Tania Patiño <taniuxpc en gmail.com>:
> Hola, me gustaria saber como óptimizar el siguiente código para que corra
> en menos tiempo de ejecución:
>
> sim1 <- function(nreps) {
> nb1 <- 10 # 10 blue marbles in Urn 1
> n1 <- 18 # number of marbles in Urn 1 at 1st pick
> n2 <- 13 # number of marbles in Urn 2 at 2nd pick
> count <- 0 # number of repetitions in which get blue from Urn 2
> for (i in 1:nreps) {
> nb2 <- 6 # 6 blue marbles orig. in Urn 2
> # pick from Urn 1 and put in Urn 2; is it blue?
> if (runif(1) < nb1/n1) nb2 <- nb2 + 1
> # pick from Urn 2; is it blue?
> if (runif(1) < nb2/n2) count <- count + 1
> }
> return(count/nreps) # est. P(pick blue from Urn 2)
> }
>
>
> Gracias,
>
> Tania
>
> [[alternative HTML version deleted]]
>
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
Más información sobre la lista de distribución R-help-es