НачатьНачать бесплатно

Замер времени — наращивание вектора

Наращивание вектора — одна из главных ошибок в 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(___ <- ___)
Редактировать и запускать код