Monopoly – sammanfattning

Effektiv R-kod

Colin Gillespie

Jumping Rivers & Newcastle University

Dataramar vs. matriser

# Original
rolls <- data.frame(d1 = sample(1:6, 3, replace = TRUE),
                    d2 = sample(1:6, 3, replace = TRUE))
# Updated
rolls <- matrix(sample(1:6, 6, replace = TRUE), ncol = 2)
  • Total simuleringstid för Monopoly: 2 sekunder till 0,5 sekunder
  • Att skapa en dataram är långsammare än en matris
  • I Monopoly-simuleringen skapade vi 10 000 dataramar
Effektiv R-kod

apply vs. rowSums

# Original
total <- apply(df, 1, sum)
# Updated
total <- rowSums(df)
  • 0,5 sekunder till 0,16 sekunder – 3 gånger snabbare
Effektiv R-kod

& vs. &&

# Original
is_double[1] & is_double[2] & is_double[3]
# Updated
is_double[1] && is_double[2] && is_double[3]
  • Begränsad snabbhetsvinst
  • 0,16 sekunder till 0,15 sekunder
Effektiv R-kod

Översikt

Metod Tid (sek) Snabbhetsvinst
Original 2,00 1,0
Matris 0,50 4,0
Matris + rowSums 0,20 10,0
Matris + rowSums + && 0,19 10,5
Effektiv R-kod

Nu kör vi en övning!

Effektiv R-kod

Preparing Video For Download...