Výpočet součtů řádků
Druhým identifikovaným úzkým místem byl výpočet součtů řádků.
total <- apply(d, 1, sum)
V předchozím cvičení jsi změnil/a podkladový objekt na matici. Díky tomu je výše uvedená operace s apply třikrát rychlejší.
Existuje ale ještě jedna optimalizace – nahraď apply() funkcí rowSums().
Toto cvičení je součástí kurzu
Efektivní kód v R
Pokyny k cvičení
- Dokonči funkci
r_sum()pomocírowSums(). - Pomocí funkce
microbenchmark()porovnej časy běhu funkcíapp()ar_sum().
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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 = ___
)