Calculando somas por linha
O segundo gargalo identificado foi calcular as somas por linha.
total <- apply(d, 1, sum)
No exercício anterior, você trocou o objeto subjacente para uma matriz. Isso torna a operação apply acima três vezes mais rápida.
Mas há mais uma otimização que você pode usar: substitua apply() por rowSums().
Este exercício faz parte do curso
Escrevendo código R eficiente
Instruções do exercício
- Complete a função
r_sum()usandorowSums(). - Use a função
microbenchmark()para comparar os tempos deapp()er_sum().
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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 = ___
)