-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #58 from andreavargasmontero/T57
Ref #1 Agrega sesión de introducción
- Loading branch information
Showing
1 changed file
with
248 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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") | ||
) | ||
``` |