Mude o data frame para uma matriz
Uma das partes do código que o profvis destacou foi a linha em que geramos as possíveis jogadas de dados e guardamos os resultados em um data frame:
df <- data.frame(d1 = sample(1:6, 3, replace = TRUE),
d2 = sample(1:6, 3, replace = TRUE))
Podemos otimizar esse código fazendo duas melhorias:
- Trocar de um data frame para uma matriz
- Gerar as 6 jogadas de dados em uma única etapa
Isso resulta em
m <- matrix(sample(1:6, 6, replace = TRUE), ncol = 2)
Este exercício faz parte do curso
Escrevendo código R eficiente
Instruções do exercício
- Leia e entenda a solução com data frame
d(). - Complete a solução com matriz,
m().m()deve criar umamatrixcom 6 elementos e 2 colunas.
- Use a função
microbenchmark()para comparar os tempos ded()em().
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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 = ___
)