1 Bienvenido

Este es un documento html interactivo en el cual usted deberá completar algunas instrucciones de R para obtener resultados.

Por favor presione el botón siguiente para activar el kernel de R.

2 Objetivo del taller

Aprender a usar correctamente la función microbenchmark del paquete microbenchmark.

Por favor corra el siguiente código para instalar y disponer los paquetes a usar. Oprima el botón run para ejecutar el código, tenga paciencia!

install.packages("microbenchmark")
library(microbenchmark)

install.packages("ggplot2")
library(ggplot2)

print("Listo, ya puedes seguir!!!")

3 Ejercicios

A continuación los ejercicios que vamos a realizar.

3.1 Ejercicio 1

¿Cuál función es más rápida? ¿\(\sqrt{x}\) o \(x^{0.5}\)?

x <- runif(100)
res <- microbenchmark(raiz     = sqrt(x), 
                      potencia = x^0.5,
                      times = 15L)

summary(res)

autoplot(res)

3.2 Ejercicio 2

¿Qué es más rápido? ¿apply o colSums?

Cambie la línea ______ con la instrucción correcta para hacer funcionar el código.

x <- matrix(rnorm(500 * 500), ncol=500)

res <- ______________(apply(x, 1, sum),
                      colSums(x),
                      times = 10L)

summary(res)

autoplot(res)

3.3 Ejercicio 3

¿Qué es más rápido? ¿lm o lm.fit?

Cambie la línea ______ con la instrucción correcta para hacer funcionar el código.

set.seed(2017)
n <- 10000
p <- 100
X <- matrix(rnorm(n*p), n, p)
y <- X %*% rnorm(p) + rnorm(100)

res <- microbenchmark("lm"     = {lm(y ~ X + 0)},
                      "lm.fit" = {lm.fit(x=X, y=y)},
                      times = 8L)

summary(res)

________(res)