From 4992bd8031e118cd6bacf822a45a6b553bc29c9e Mon Sep 17 00:00:00 2001 From: andreavargasmontero Date: Fri, 19 Feb 2021 16:27:40 -0600 Subject: [PATCH 1/3] =?UTF-8?q?Agrega=20sesi=C3=B3n=20de=20introduccion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- inst/tutorials/introduccion/introduccion.Rmd | 214 +++++++++++++++++++ 1 file changed, 214 insertions(+) create mode 100644 inst/tutorials/introduccion/introduccion.Rmd diff --git a/inst/tutorials/introduccion/introduccion.Rmd b/inst/tutorials/introduccion/introduccion.Rmd new file mode 100644 index 0000000..69f6338 --- /dev/null +++ b/inst/tutorials/introduccion/introduccion.Rmd @@ -0,0 +1,214 @@ +--- +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. +--- + + + +```{r setup, include=FALSE} +knitr::opts_chunk$set(echo = TRUE) +library(learnr) +library(dplyr) +library(gradethis) +y <- 10:100 + +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 `=` pero no es lo recomendado). + +**Ejemplo**: crear un objeto llamado "x" que contenga el número 1 + +```{r} +x <- 1 +``` + +### Funciones + +Las funciones son una serie de pasos o procedimientos que se +encapsulan en un mismo lugar para que escribir de 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. Se utiliza de la siguiente forma: + +```{r} +mean(y) +``` + + +### 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 `mtcars` + +```{r seg_col, exercise = TRUE} + +``` + +```{r seg_col-hint-1} +[, 2] +``` + +```{r seg_col-check} +grade_result( + pass_if(~ identical(unlist(.result), + unlist(mtcars[, 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!") +) +``` From f5911fa3cad591809c133dc44ae84e9278c2c602 Mon Sep 17 00:00:00 2001 From: andreavargasmontero Date: Mon, 22 Feb 2021 11:58:18 -0600 Subject: [PATCH 2/3] Cambia a mtautos y agrega ejercicio de error de libreria --- inst/tutorials/introduccion/introduccion.Rmd | 37 +++++++++++++++++--- 1 file changed, 32 insertions(+), 5 deletions(-) diff --git a/inst/tutorials/introduccion/introduccion.Rmd b/inst/tutorials/introduccion/introduccion.Rmd index 69f6338..19aa530 100644 --- a/inst/tutorials/introduccion/introduccion.Rmd +++ b/inst/tutorials/introduccion/introduccion.Rmd @@ -20,6 +20,7 @@ knitr::opts_chunk$set(echo = TRUE) library(learnr) library(dplyr) library(gradethis) +library(datos) y <- 10:100 tutorial_options(exercise.checker = gradethis::grade_learnr) @@ -39,16 +40,16 @@ A continuación mostramos los conceptos básicos de R: En R para crear un objeto utilizamos el símbolo `<-` (también se puede utilizar `=` pero no es lo recomendado). -**Ejemplo**: crear un objeto llamado "x" que contenga el número 1 +**Ejemplo**: crear un objeto llamado "temperatura" que contenga el número 36. ```{r} -x <- 1 +temperatura <- 36 ``` ### Funciones Las funciones son una serie de pasos o procedimientos que se -encapsulan en un mismo lugar para que escribir de código sea más +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. @@ -151,7 +152,7 @@ grade_result( ) ``` -### Acceda la segunda columna del conjunto de datos `mtcars` +### Acceda la segunda columna del conjunto de datos `mtautos` ```{r seg_col, exercise = TRUE} @@ -164,7 +165,7 @@ grade_result( ```{r seg_col-check} grade_result( pass_if(~ identical(unlist(.result), - unlist(mtcars[, 2])), + unlist(mtautos[, 2])), "¡Buenísimo!") ) ``` @@ -212,3 +213,29 @@ grade_result( "¡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") +) +``` From 1a2c133f6be5f33320b90022f56efd7d3c0954ef Mon Sep 17 00:00:00 2001 From: andreavargasmontero Date: Mon, 22 Feb 2021 12:12:01 -0600 Subject: [PATCH 3/3] Cambia consejo de asignacion y mejora ejemplo con `mean` --- inst/tutorials/introduccion/introduccion.Rmd | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/inst/tutorials/introduccion/introduccion.Rmd b/inst/tutorials/introduccion/introduccion.Rmd index 19aa530..a582c1e 100644 --- a/inst/tutorials/introduccion/introduccion.Rmd +++ b/inst/tutorials/introduccion/introduccion.Rmd @@ -22,6 +22,7 @@ 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) ``` @@ -38,11 +39,11 @@ 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 `=` pero no es lo recomendado). +puede utilizar `=`). **Ejemplo**: crear un objeto llamado "temperatura" que contenga el número 36. -```{r} +```{r ejemplo_asignacion} temperatura <- 36 ``` @@ -55,12 +56,18 @@ 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. Se utiliza de la siguiente forma: +promedio de algún objeto. -```{r} -mean(y) +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