Обчислення сум за рядками
Другим виявленим «вузьким місцем» було обчислення сум за рядками.
total <- apply(d, 1, sum)
У попередній вправі ви змінили підкладений об'єкт на матрицю. Це зробило наведений вище виклик apply утричі швидшим.
Але є ще одна оптимізація — замініть apply() на rowSums().
Ця вправа є частиною курсу
Ефективне програмування R
Інструкції до вправи
- Доповніть функцію
r_sum()за допомогоюrowSums(). - Використайте функцію
microbenchmark(), щоб порівняти час виконанняapp()іr_sum().
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# Example data
rolls
# Define the previous solution
app <- function(x) {
apply(x, 1, sum)
}
# Define the new solution
r_sum <- function(x) {
___(x)
}
# Compare the methods
microbenchmark(
app_sol = app(rolls),
r_sum_sol = ___
)