Skip to content

Commit

Permalink
Merge pull request #58 from andreavargasmontero/T57
Browse files Browse the repository at this point in the history
Ref #1 Agrega sesión de introducción
  • Loading branch information
ronnyhdez authored Feb 22, 2021
2 parents c5e91ea + 1a2c133 commit 80eeb13
Showing 1 changed file with 248 additions and 0 deletions.
248 changes: 248 additions & 0 deletions inst/tutorials/introduccion/introduccion.Rmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,248 @@
---
title: "Sesión 1: Introducción"
output:
learnr::tutorial:
language: es
css: https://storage.googleapis.com/datos_cursos/ixpantia_introR/intro_r.css
runtime: shiny_prerendered
description: >
Introducción general a R y RStudio acompañada de ejercicios rápidos.
---

<style>
@import url('https://fonts.googleapis.com/css2?family=Roboto+Mono&family=Roboto+Slab&family=Source+Sans+Pro:wght@300;400&display=swap');

@import url('https://fonts.googleapis.com/css2?family=Lato&display=swap');
</style>

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
library(learnr)
library(dplyr)
library(gradethis)
library(datos)
y <- 10:100
notas <- c(67, 89, 95, 92, 71, 84, 100, 97)
tutorial_options(exercise.checker = gradethis::grade_learnr)
```

## Descripción general

R es uno de los lenguajes de programación estadística más populares en
el mundo. Permite hacer una gran variedad de análisis y productos
de datos, por lo que resulta ser una herramienta muy poderosa para
profesionales en diversas áreas.

A continuación mostramos los conceptos básicos de R:

### Crear objetos

En R para crear un objeto utilizamos el símbolo `<-` (también se
puede utilizar `=`).

**Ejemplo**: crear un objeto llamado "temperatura" que contenga el número 36.

```{r ejemplo_asignacion}
temperatura <- 36
```

### Funciones

Las funciones son una serie de pasos o procedimientos que se
encapsulan en un mismo lugar para que escribir código sea más
eficiente. Una función siempre es precedida por un paréntesis. Dentro
de los paréntesis colocamos la información requerida para que la
función haga su trabajo.

Un ejemplo de una función de R es `mean()`, para obtener rápidamente el
promedio de algún objeto.

Podemos utilizarla para obtener el promedio de las notas de un curso que
tenemos guardadas en el objeto `notas`.
```{r ver_notas}
notas
```

Se utiliza de la siguiente forma:
```{r ejemplo_funcion}
mean(notas)
```

### Data frames
Una de las estructuras más comunes en R son los data frames o conjuntos de
datos. En palabras simples estos son tablas que contienen datos y están
formadas por filas y columnas. Para crear uno de estos objetos en R podemos
hacer lo siguiente:

```{r}
df <- data.frame(x1 = c("A", "B", "C"),
x2 = c(1, 2, 3))
```

Para poder acceder las columnas y las filas de estos objetos
se utiliza la siguiente lógica: `datos[fila, columa]`. Es decir, si
quiero obtener la segunda fila del conjunto anterior (y todas las
columnas) puedo utilizar:

```{r}
df[2, ]
```

Para obtener la segunda columna y todas las filas:

```{r}
df[, 2]
```

Y para obtener la segunda columna de la segunda fila solamente:

```{r}
df[2, 2]
```

### Ayuda

Para buscar ayuda o documentación sobre una función o paquete de R
se utiliza el signo de pregunta (?). Para la ayuda de una función
hacemos lo siguiente:

```{r}
?class
```

Para buscar la ayuda de un paquete:

```{r}
??dplyr
```

## Ejercicios

### Utilice la función `max()`
La función `max` como es de esperar, nos devuelve el número máximo
del objeto que le indiquemos. Utilícela para obtener el máximo de
`y <- 10:100`

```{r max, exercise = TRUE}
```

```{r max-hint-1}
max()
```

```{r max-check}
grade_result(
pass_if(~ identical(unlist(.result),
unlist(max(y))),
"¡Buenísimo!")
)
```


### Busque la ayuda o documentación de la función `mean()`

```{r ayuda, exercise = TRUE}
```

```{r ayuda-hint-1}
?
```

```{r ayuda-check}
grade_result(
pass_if(~ identical(unlist(.result),
unlist(?mean)),
"¡Buenísimo!")
)
```

### Acceda la segunda columna del conjunto de datos `mtautos`

```{r seg_col, exercise = TRUE}
```

```{r seg_col-hint-1}
[, 2]
```

```{r seg_col-check}
grade_result(
pass_if(~ identical(unlist(.result),
unlist(mtautos[, 2])),
"¡Buenísimo!")
)
```

### Llame la librería `learnr`

```{r library, exercise = TRUE}
```

```{r library-hint-1}
install.packages()
```

```{r library-check}
grade_result(
pass_if(~ identical(.result, library(learnr)),
"¡Buenísimo!")
)
```

### Instalar paquete

```{r install, echo=FALSE}
question("¿Cómo se intala el paquete `dplyr`?",
answer("install_packages(dplyr)"),
answer("installPackages(dplyr)"),
answer("install.packages(\"dplyr\")", correct = TRUE)
)
```

### Encuentre la clase de objeto que es `y`

```{r class, exercise = TRUE}
```

```{r class-hint-1}
class()
```

```{r class-check}
grade_result(
pass_if(~ identical(.result, class(y)),
"¡Buenísimo!")
)
```

### Resolviendo errores

Imaginemos que comienzo a hacer un análisis de datos exploratorio en R y lo
primero que quiero hacer es un gráfico con `ggplot`. Para esto escribo lo
siguiente:

```{r codigo_ggplot, eval=FALSE}
ggplot(ventas, aes(x = tipo_producto, y = total_ganancias)) +
geom_boxplot()
```

Al hacerlo, obtengo el siguiente error:
```{r error, echo=FALSE, out.width="65%", fig.align = "center"}
knitr::include_graphics("https://storage.googleapis.com/datos_cursos/ixpantia_introR/error_libreria.png")
```

```{r error_ejercicio, echo=FALSE}
question("¿Porqué se da esta error?",
answer("Porque faltan argumentos en el código"),
answer("Porque no ha llamado la librería `ggplot2`",
correct = TRUE),
answer("Porque los datos `ventas` no fueron cargados"),
answer("Porque hay un error ortográfico en la instrucción")
)
```

0 comments on commit 80eeb13

Please sign in to comment.