Převod datového rámce na matici
Jednou z částí kódu, kterou profvis zvýraznil, byl řádek, kde jsme generovali možné hody kostkou a ukládali výsledky do datového rámce:
df <- data.frame(d1 = sample(1:6, 3, replace = TRUE),
d2 = sample(1:6, 3, replace = TRUE))
Tento kód můžeme optimalizovat dvěma způsoby:
- Nahrazením datového rámce maticí
- Generováním všech 6 hodů kostkou v jediném kroku
Výsledek bude vypadat takto:
m <- matrix(sample(1:6, 6, replace = TRUE), ncol = 2)
Toto cvičení je součástí kurzu
Efektivní kód v R
Pokyny k cvičení
- Přečti si a pochop řešení s datovým rámcem
d(). - Dokonči maticové řešení
m().m()má vytvořitmatrixse 6 prvky a 2 sloupci.
- Pomocí funkce
microbenchmark()porovnej časy výpočtud()am().
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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 = ___
)