Ce post se base sur les informations trouvées sur le blog de Radford Neal http://radfordneal.wordpress.com/201...hings-about-r/, qui traite de la rapidité de commandes de base dans R.
Le fait remplacer les parenthèses dans les formules mathématique par des accolades, pour preuve :
La fonction utilisant les accolades est plus rapide de plus de 5%.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 a <- 5; b <- 1; c <- 4 f <- function (n) for (i in 1:n) d <- 1/{a*{b+c}} g <- function (n) for (i in 1:n) d <- 1/(a*(b+c)) require(rbenchmark) benchmark(f(1000000), g(1000000), columns=c("test", "replications", "elapsed", "relative"), order="relative", replications = 1) test replications elapsed relative 1 f(1e+06) 1 1.028 1.000 2 g(1e+06) 1 1.085 1.055
On a également un gain de temps lorsque l'on fait le calcule d'une moyenne ou de variance à la main :
Le calcul effectué à la main est plus rapide, mais à proscrire car cette dernière ne rééquilibre pas le calcul comme le fait la fonction 'mean'.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 > M <- 1:10000 > system.time(for(i in 1:10000) mean(M)) utilisateur système écoulé 0.152 0.000 0.150 > system.time(for(i in 1:10000) sum(M)/length(M)) utilisateur système écoulé 0.132 0.000 0.131
Partager