Beräkna radsummor
Den andra flaskhalsen som identifierades var beräkning av radsummor.
total <- apply(d, 1, sum)
I föregående övning bytte du ut det underliggande objektet mot en matris. Det gör apply-operationen ovan tre gånger snabbare.
Men det finns ytterligare en optimering att göra – byt ut apply() mot rowSums().
Den här övningen är en del av kursen
Effektiv R-kod
Övningsinstruktioner
- Fyll i funktionen
r_sum()med hjälp avrowSums(). - Använd funktionen
microbenchmark()för att jämföra körtiderna förapp()ochr_sum().
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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 = ___
)