ComenzarEmpieza gratis

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

Ver curso

Instrucciones del ejercicio

  • Lee y entiende la solución con data frame d().
  • Completa la solución con matriz, m().
    • m() debe crear una matrix con 6 elementos y 2 columnas.
  • Usa la función microbenchmark() para comparar los tiempos de d() y m().

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     = ___
)
Editar y ejecutar código