Byt ut dataramen mot en matris
En av de delar i koden som profvis lyfte fram var raden där vi genererade möjliga tärningsutfall och lagrade resultaten i en dataframe:
df <- data.frame(d1 = sample(1:6, 3, replace = TRUE),
d2 = sample(1:6, 3, replace = TRUE))
Vi kan optimera den här koden genom att göra två förbättringar:
- Byta ut dataramen mot en matris
- Generera de 6 tärningskasten i ett enda steg
Detta ger
m <- matrix(sample(1:6, 6, replace = TRUE), ncol = 2)
Den här övningen är en del av kursen
Effektiv R-kod
Övningsinstruktioner
- Läs och förstå dataramslösningen
d(). - Slutför matrislösningen,
m().m()ska skapa enmatrixmed 6 element och 2 kolumner.
- Använd funktionen
microbenchmark()för att jämföra körtiderna förd()ochm().
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# Load the microbenchmark package
___
# The previous data frame solution is defined
# d() Simulates 6 dices rolls
d <- function() {
data.frame(
d1 = sample(1:6, 3, replace = TRUE),
d2 = sample(1:6, 3, replace = TRUE)
)
}
# Complete the matrix solution
m <- function() {
___(sample(1:6, ___, replace = TRUE), ___)
}
# Use microbenchmark to time m() and d()
___(
data.frame_solution = d(),
matrix_solution = ___
)