Obliczanie sum wierszy
Drugim zidentyfikowanym wąskim gardłem było obliczanie sum wierszy.
total <- apply(d, 1, sum)
W poprzednim ćwiczeniu podmieniliśmy obiekt na macierz. Dzięki temu powyższa operacja apply działa trzy razy szybciej.
Można jednak zastosować jeszcze jedną optymalizację – zamienić apply() na rowSums().
To ćwiczenie jest częścią kursu
Wydajny kod w R
Instrukcje do ćwiczenia
- Uzupełnij funkcję
r_sum(), używającrowSums(). - Użyj funkcji
microbenchmark(), aby porównać czasy działaniaapp()ir_sum().
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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 = ___
)