Calcul des sommes par ligne
Le deuxième goulot d'étranglement repéré concerne le calcul des sommes par ligne.
total <- apply(d, 1, sum)
Dans l'exercice précédent, vous avez remplacé l'objet sous-jacent par une matrice. Cela rend l'appel à apply ci-dessus trois fois plus rapide.
Mais vous pouvez aller un peu plus loin : remplacez apply() par rowSums().
Cette activité fait partie du cours
Écrire du code R efficace
Instructions de l’exercice
- Complétez la fonction
r_sum()en utilisantrowSums(). - Utilisez la fonction
microbenchmark()pour comparer les temps d'exécution deapp()etr_sum().
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Example data
rolls
# Define the previous solution
app <- function(x) {
apply(x, 1, sum)
}
# Define the new solution
r_sum <- function(x) {
___(x)
}
# Compare the methods
microbenchmark(
app_sol = app(rolls),
r_sum_sol = ___
)