Tiempos: hacer crecer un vector
Hacer crecer un vector es uno de los pecados capitales en R; debes evitarlo siempre.
La función growing() definida abajo genera n números aleatorios normales estándar, ¡pero aumenta el tamaño del vector cada vez que se añade un elemento!
Nota: Los números normales estándar se extraen de una distribución normal con media 0 y desviación estándar 1.
n <- 30000
# Código lento
growing <- function(n) {
x <- NULL
for(i in 1:n)
x <- c(x, rnorm(1))
x
}
Este ejercicio forma parte del curso
Escribir código R eficiente
Instrucciones del ejercicio
La función growing() ya está definida en tu espacio de trabajo.
- Usando la función
system.time(), averigua cuánto tarda en generarn = 30000números aleatorios normales estándar con la funcióngrowing(). Usa el truco de<-para guardar el resultado en un vector llamadores_grow.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Use <- with system.time() to store the result as res_grow
system.time(___ <- ___)