Cambia el data frame a una matriz
Una de las partes del código que profvis resaltó fue la línea donde generamos las posibles tiradas de dados y guardamos los resultados en un data frame:
df <- data.frame(d1 = sample(1:6, 3, replace = TRUE),
d2 = sample(1:6, 3, replace = TRUE))
Podemos optimizar este código haciendo dos mejoras:
- Cambiar de un data frame a una matriz
- Generar las 6 tiradas de dados en un solo paso
Esto da como resultado
m <- matrix(sample(1:6, 6, replace = TRUE), ncol = 2)
Este ejercicio forma parte del curso
Escribir código R eficiente
Instrucciones del ejercicio
- Lee y entiende la solución con data frame
d(). - Completa la solución con matriz,
m().m()debe crear unamatrixcon 6 elementos y 2 columnas.
- Usa la función
microbenchmark()para comparar los tiempos ded()ym().
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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 = ___
)