CommencerCommencer gratuitement

Remplacer le data frame par une matrice

L’un des éléments du code mis en évidence par profvis était la ligne où nous générions les lancers de dés possibles et stockions les résultats dans un data frame :

df <- data.frame(d1 = sample(1:6, 3, replace = TRUE),
                d2 = sample(1:6, 3, replace = TRUE))

Nous pouvons optimiser ce code avec deux améliorations :

  • Passer d’un data frame à une matrice
  • Générer les 6 lancers de dés en une seule étape

Ce qui donne

m <- matrix(sample(1:6, 6, replace = TRUE), ncol = 2)

Cet exercice fait partie du cours

Écrire du code R efficace

Afficher le cours

Instructions

  • Lisez et comprenez la solution avec data frame d().
  • Complétez la solution avec matrice, m().
    • m() doit créer une matrix avec 6 éléments et 2 colonnes.
  • Utilisez la fonction microbenchmark() pour comparer les temps d’exécution de d() et m().

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# 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     = ___
)
Modifier et exécuter le code