Kom igångKom igång gratis

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

Visa kurs

Övningsinstruktioner

  • Fyll i funktionen r_sum() med hjälp av rowSums().
  • Använd funktionen microbenchmark() för att jämföra körtiderna för app() och r_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 = ___
)
Redigera och kör kod