Transformă data frame-ul într-o matrice
Una dintre porțiunile de cod evidențiate de profvis a fost linia în care am generat aruncările posibile cu zarurile și am stocat rezultatele într-un data frame:
df <- data.frame(d1 = sample(1:6, 3, replace = TRUE),
d2 = sample(1:6, 3, replace = TRUE))
Putem optimiza acest cod prin două îmbunătățiri:
- Înlocuirea data frame-ului cu o matrice
- Generarea celor 6 aruncări cu zarurile într-un singur pas
Astfel obținem
m <- matrix(sample(1:6, 6, replace = TRUE), ncol = 2)
Acest exercițiu face parte din cursul
Scrierea codului R eficient
Instrucțiuni pentru exercițiu
- Citește și înțelege soluția cu data frame
d(). - Completează soluția cu matrice,
m().m()trebuie să creeze omatrixcu 6 elemente și 2 coloane.
- Folosește funcția
microbenchmark()pentru a compara timpii de execuție aid()șim().
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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 = ___
)