Вимірювання часу — зростання вектора
Зростання вектора — одна з «смертельних» помилок в R; цього слід завжди уникати.
Нижче визначено функцію growing(), яка генерує n випадкових стандартних нормальних чисел, але щоразу під час додавання елемента збільшує розмір вектора!
Примітка: Стандартні нормальні числа — це значення, вибрані з нормального розподілу із середнім 0 та стандартним відхиленням 1.
n <- 30000
# Slow code
growing <- function(n) {
x <- NULL
for(i in 1:n)
x <- c(x, rnorm(1))
x
}
Ця вправа є частиною курсу
Ефективне програмування R
Інструкції до вправи
Функцію growing() уже визначено у вашому робочому середовищі.
- За допомогою
system.time()дізнайтеся, скільки часу потрібно, щоб згенеруватиn = 30000випадкових стандартних нормальних чисел за допомогою функціїgrowing(). Скористайтеся прийомом із<-, щоб зберегти результат у векторіres_grow.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# Use <- with system.time() to store the result as res_grow
system.time(___ <- ___)