Змініть датафрейм на матрицю
Одним із фрагментів коду, який підсвітив profvis, був рядок, де ми згенерували можливі кидки кубиків і зберегли результат у датафреймі:
df <- data.frame(d1 = sample(1:6, 3, replace = TRUE),
d2 = sample(1:6, 3, replace = TRUE))
Ми можемо оптимізувати цей код двома покращеннями:
- Перейти від датафрейму до матриці
- Згенерувати 6 кидків кубиків за один крок
У результаті вийде так:
m <- matrix(sample(1:6, 6, replace = TRUE), ncol = 2)
Ця вправа є частиною курсу
Ефективне програмування R
Інструкції до вправи
- Прочитайте та розберіться з розв'язком на датафреймі
d(). - Доповніть розв'язок на матриці
m().m()має створюватиmatrixз 6 елементами та 2 стовпцями.
- Скористайтеся функцією
microbenchmark(), щоб порівняти час виконанняd()іm().
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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 = ___
)