class: center, middle, titular background-size: contain <img style="border-radius: 50%;" src="img/logofundapi.jpg" width="250px"/> # Lenguaje R - Nivel Básico Intermedio ## **CAPACITACIÓN** #### LINDA CABRERA ORELLANA #### Mayo, 2025 --- name: saludo layout: false class: inverse, middle, center # Sobre mi .pull-left[ <img style="border-radius: 50%;" src="img/lindacv2.jpg" width="250px"/> ## Linda Cabrera Orellana ### Software Instructor - The Carpentries ] .pull-right[ <br> <br> Master en Técnicas Cuantitativas para la gestión empresarial por la Universidad de Granada, Master en Investigación Matemática por la Universidad Politécnica de Valencia, Ingeniera en Auditoría y Gestión de Procesos por la Escuela Superior Politécnica del Litoral. Actualmente se desempeña como Data Analyst de Educa Edtech Group y es instructora de cursos en la Sociedad Ecuatoriana de Estadística. Se desempeñó como profesora en la Universidad Técnica de Machala y la Universidad Metropolitana, sede Machala. ] --- # Contenido del curso ### Capítulo 1: Introducción a RStudio. R, RStudio, Posit Cloud, Paquetes, Proyectos, Scripts, Asignación, Operadores, Funciones, Ayuda. ### Capítulo 2: Importación y Manipulación de datos en R. Importar datos, Estructuras de datos y Tipos de datos, Transformación de datos, Datos relacionales, Datos ordenados. ### Capítulo 3: Estadística descriptiva. Bases de Estadística, Estadística descriptiva univariada, Estadística descriptiva multivariada. ### Capítulo 4: Análisis exploratorio de datos. Creación de gráficos con `ggplot2`, Gráficos dinámicos con `plotly`. ### Capítulo 5: ShinyApps Conexiones a bases de datos, Instalación de Shiny, Creación de dashboards, Creación de objetos interactivos, Expresiones reactivas, Filtros, Conociendo librerías complementarias, Carga del tablero a ShinyApps. --- # Fechas relevantes ----- - **Duración:** 20 horas. ----- **Fechas:** - Inicia: Miércoles, 08 de mayo de 2024. - Finaliza: Viernes, 31 de mayo de 2024. - Horario : De 14h00 a 16h00 ----- **Días clases:** - Miércoles 8 de mayo - Viernes 10 de mayo - Lunes 13 de mayo - Miércoles 15 de mayo - Viernes 17 de mayo - Lunes 20 de mayo - Miércoles 22 mayo - Lunes 27 de mayo - Miércoles 29 de mayo - Viernes 31 de mayo ----- --- class: center, middle, titular background-size: contain <img style="border-radius: 50%;" src="img/logofundapi.jpg" width="250px"/> # Introducción a RStudio ## **CAPÍTULO 1** #### LINDA CABRERA ORELLANA #### Mayo, 2025 --- # Contenido del Capítulo 1 <br> 1. **R**, **R**Studio y **Posit**Cloud 3. Entendiendo **RStudio** 5. Trabajando con **paquetes** 6. Creando **proyectos** y **scripts** 7. **Operadores y Objetos** 8. **Funciones** 9. **Práctica 1** --- class: middle, center, inverse
# R, RStudio y PositCloud --- background-image: url("img/IDE2.png") background-size: contain --- # Instalación de R Es necesario realizar la instalación en el mismo orden que se indica aquí, es decir instalar primero R y luego RStudio. 1. Para descargar R, ingresa a [CRAN](https://cran.rstudio.com/) y elige el sistema operativo de tu computadora. **CRAN** es un acrónimo *Comprehensive R Archive Network* (Red integral de archivos R) para el lenguaje de programación R. 2. Si tu sistema operativo es `Windows`, en la siguiente pantalla que te aparece elige la primera opción que indica `base`. Luego haz clic para iniciar la descarga del instalador de la última versión de R para Windows. 3. Si tu sistema operativo es `macOS`, elige la primera opción que indica `R-4.2.2-arm64.pkg` para iniciar la descarga del instalador. 4. Cuando se haya terminado de descargar el instalador, abre el ejecutable, elige el idioma español y sigue todos los pasos para su instalación dando clic en siguiente. Este proceso de instalación puede durar algunos minutos. 5. Cuando se haya completado la instalación, para confirmar que se hizo correctamente nos dirigimos a las aplicaciones y hacemos clic en `Inicio -> Todas las aplicaciones -> R -> R X64 4.2.0`. [**Video Tutorial para la instalación de R y RStudio**](https://youtu.be/wM6K81wm2jQ) [**Guía completa para la instalación de R y RStudio**](https://lindajzmin-website.netlify.app/blogs/instalacion-r-rstudio/) --- # Instalación de RStudio 1. Con R instalado, ahora procederemos a descargar RStudio desde [https://posit.co/download/rstudio-desktop/](https://posit.co/download/rstudio-desktop/). 2. Hacer clic en el ejecutable que se ha descargado e inicia la instalación siguiendo todos los pasos. Para confirmar que la instalación se hizo correctamente nos dirigimos a las aplicaciones y hacemos clic en `RStudio`. [**Video Tutorial para la instalación de R y RStudio**](https://youtu.be/wM6K81wm2jQ) [**Guía completa para la instalación de R y RStudio**](https://lindajzmin-website.netlify.app/blogs/instalacion-r-rstudio/) <br> # Posit Cloud La plataforma se encuentra en internet y no necesitamos instalar ningún IDE, ni ninguna herramienta como R. Fue liberada en el 2019 por RStudio. 1. Ingresar a [Posit Cloud](https://posit.cloud/). 2. Crear una cuenta en Posit Cloud. --- background-image: url("img/positcloud2.png") background-size: contain --- class: middle, center, inverse
# Entendiendo RStudio --- background-image: url("img/entorno2.png") background-size: contain --- ## Consola * Se puede codificar directamente, pero no guardará el código. * Puedo ingresar operaciones matemáticas directamente: * La función `getwd()` sirve para conocer el directorio en el que me encuentro actualmente <br> ## Pantallas varias * **Archivos:** Le permite ver qué archivos están disponibles en su directorio de trabajo. * **Gráficos:** Mostrará cualquier visualización que produzca su código. * **Paquetes:** Mostrará una lista de todos los paquetes descargados a su computadora y también los que están cargados. * **Ayuda:** Permite buscar temas sobre los que necesita ayuda y también mostrará las respuestas de ayuda. <br> .footnote[[Editing and Executing Code in the RStudio IDE](https://support.posit.co/hc/en-us/articles/200484448-Editing-and-Executing-Code)] --- ## Archivos de comandos * Los scripts son documentos de texto con la extensión de archivo `.R`, por ejemplo `mi_script.R`. * Puedo crear un script: 1. Utilizando la ruta `File -> New File -> R Script`. 2. Utilizando el atajo `Ctrl+Shift+N`. * Aparecerá un `*` en scripts no guardados. <br> ## Entorno del espacio de trabajo * Incluye cualquier objeto definido por el usuario (vectores, matrices, marcos de datos, listas, funciones). --- class: middle, center, inverse
# Trabajando con paquetes --- background-image: url("img/paquetes_rstudio.png") background-size: contain --- class: middle, center, inverse
# ¿Qué es un paquete o una librería? <br> En R, la unidad fundamental del código compartible es el paquete. Un paquete agrupa código, datos, documentación y pruebas y proporciona un método fácil para compartir con otros. Esquema de R: 1) R base, 2) Funciones adicionales con paquetes Debes tener en cuenta que los paquetes: 1) Se instalan en RStudio (solo la primera vez) y, 2) se cargan en RStudio (cada nueva sesión) --- background-image: url("img/instalacion_paquete.gif") background-size: contain --- background-image: url("img/carga_paquete.gif") background-size: contain --- # Instalando Paquetes .pull-left[ ### **Desde CRAN** Repositorio oficial compuesto de un conjunto de servidores web y ftp mantenidos por la comunidad R a lo largo de todo el mundo. 1. **Por la interfaz gráfica** * Desde la barra de Herramientas, escogemos la opción `Tools -> Install packages...` * Desde el panel de *pantallas varias* en la pestaña de `Packages` 2. **Con código.** ```r install.packages("dplyr") ``` ] .pull-right[ ### **Desde GitHub** ```r install.packages("devtools") devtools::install_github("hadley/babynames") ``` ### **Desde Bioconductor** Se trata de un repositorio específico para bioinformática. Puede revisar más información en [https://www.bioconductor.org/](https://www.bioconductor.org/) ] .footnote[ftp: File Transfer Protocol (la traducción de significa Protocolo de transferencia de archivos) en lugar del HTTP. El servidor FTP sirve para guardar archivos, imágenes e información importante y valiosa.] --- # Cargando Paquetes Una vez que el paquete se descarga en su computadora, puede acceder a las funciones y recursos proporcionados mediante código: ```r # carga el paquete para usar en la sesión actual de R library(tidyverse) # usar una función particular dentro de un paquete sin cargar el paquete dplyr::filter() ``` También puede cargar los paquetes desde el panel de *pantallas varias* en la pestaña de `Packages`. RStudio compiló una guía con algunos de los mejores paquetes para cargar, manipular, visualizar, analizar e informar datos, que la puedes encontrar en [https://support.rstudio.com/hc/en-us/articles/201057987-Quick-list-of-useful-R-packages](https://support.rstudio.com/hc/en-us/articles/201057987-Quick-list-of-useful-R-packages). --- background-image: url("img/paquetes2.png") background-size: contain --- class: middle, center, inverse
# Creando proyectos y scripts --- # Proyectos .pull-left[ <img style="border-radius: 20%;" src="img/folders.png" width="600px"> ] .pull-right[ * Carpetas que contienen los scripts, archivos desde donde se importan los datos y los archivos de proyecto como el .RData (contiene los objetos con los que se está trabajando) y .Rhistory (contiene el historial de comandos). * Cada vez que se abre un proyecto existente, se abren las ventanas que se encontraban activas en ese proyecto. * Para crear un proyecto seguimos los siguientes pasos: `Project -> New Project... -> New Directory -> Empty Project -> "Poner nombre al proyecto y elegir ruta" -> Create Project` ] --- background-image: url("img/proyectos2.png") background-size: contain --- # Scripts <img style="border-radius: 20%;" src="img/bakers_2.png" width="500px"> * Para ejecutar código: 1. La línea de código fuente donde reside el cursor, presione `Ctrl+Enter` (o use el botón `Run`). 2. Seleccione varias líneas a la vez y presione `Ctrl+Enter`. 3. Todo el documento, presione `Ctrl+Shift+Enter` (o use el botón `Source`). * Puede comentar y descomentar mediante el elemento de menú `Código -> Comentar/Descommentar líneas` o presiones `Ctrl+Shift+C` o escribiendo el signo numeral. * Para crear secciones utiliza `Ctrl+Shift+R`. --- class: middle, center, inverse
# Operadores y Objetos --- .pull-left[ # Operadores aritméticos De mayor a menor precedencia: Usa paréntesis para agrupar las operaciones a fin de forzar el orden de la evaluación o para aclarar lo que se desea hacer. | Operador | Operación | |:--------:|:-----------------:| | `(`, `)` | Paréntesis | | `^` o `**` | Exponente | | `/` | División | | `*` | Multiplicación | | `+` | Suma | | `-` | Resta | ] .pull-right[ # Operadores relacionales Son usados para hacer comparaciones y siempre devuelven como resultado `TRUE` o `FALSE`. | Operador | Comparación | |:--------:|:-----------------:| | `\(<\)` | Menor que | | `\(\leq\)` | Menor o igual que | | `\(>\)` | Mayor que | | `\(\geq\)` | Mayor o igual que | | `\(==\)` | Exactamente igual que | | `\(\neq\)` | No es igual que | | %in% | Incluye | ] --- # Operadores lógicos Son usados para operaciones de **álgebra Booleana**, es decir, para describir relaciones lógicas, expresadas como `TRUE` o `FALSO`. Supongamos que `\(x\)` y `\(y\)` son **proposiciones**, es decir, enunciados lógicos que se les puede asignar un valor de verdad (1) o falsedad (0), entonces: | Operador | Nombre | Resultado | |:--------:|:-----------:|:----------------------:| | `\(x\)` | `\(y\)` | disyunción (O) | Es `TRUE` cuando al menos una de las dos `\(x\)` o `\(y\)` es verdadera, y `FALSE` en caso contrario. | | `\(x\)` & `\(y\)` | conjunción (Y) | Es `TRUE` cuando `\(x\)` y `\(y\)` son verdaderas, y `FALSE` en cualquier otro caso. | | ! `\(x\)` | negación (NO) | Es `TRUE` si `\(x\)` es `FALSE` y es `FALSE` si `\(x\)` es `TRUE`. | --- # Asignación - Creando objetos .pull-left[ Un concepto básico en la programación (estadística) se llama **variable**. Una variable le permite almacenar un valor o un objeto en R usando `<-` (`Alt+-`). Luego puede usar el nombre de esta variable para acceder fácilmente al valor o al objeto que está almacenado dentro de esta variable. Por ejemplo, puede asignar un valor de 6 a una variable `mi_var`: ```r ## crear la variable mi_var mi_var <- 6 ## imprimir el valor guardado en la variable mi_var ## [1] 6 ``` ] .pull-right[ Observe que el objeto creado se almacenará en la pestaña `Environment` en el Panel _workspace environment_. La variable `mi_var` se puede usar en lugar de un número en cualquier cálculo que espere un número: ```r sqrt(mi_var) ## [1] 2.44949 ``` Ten cuidado, porque las variables pueden reasignarse: ```r mi_var <- 12 ``` `mi_var` tenía el valor 6 y ahora tiene el valor 12. ] --- # Asignación - Creando objetos .pull-left[ También, los valores de asignación pueden contener la variable asignada: ```r mi_var <- mi_var + 3 y <- mi_var / 5 ``` Los _nombres de las variables_ pueden contener letras, números, guiones bajos y puntos. No pueden comenzar con un número ni contener espacios en absoluto. Es aconsejable que los nombres sean descriptivos. Diferentes personas usan diferentes convenciones para nombres largos de variables, estos incluyen - puntos.entre.palabras - guiones_bajos_entre_palabras - MayúsculasMinúsculasParaSepararPalabras ] .pull-right[ También es posible utilizar el operador `=` para la asignación: ```r mi_var = 20*3 ``` Esta forma es menos común entre los usuarios R. **Ejercicio 1.2.** De los siguientes ejemplos, ¿Cuáles son nombres de variables válidas en R? ```r min_height max.height _age .mass MaxLength min-length 2widths celsius2kelvin ``` ] --- background-image: url(https://www.rebanando.com/uploads/externalMedia/dc/8e/b4/c6/jnu3dlr.gif) background-size: contain --- # Funciones <br> <img src="img/funcion3.png" width="90%" style="display: block; margin: auto;" /> <br> ** _"Una función es una regla de correspondencia entre dos conjuntos de tal manera que a cada elemento del primer conjunto le corresponde uno y sólo un elemento del segundo conjunto."_ ** --- # Funciones .pull-left[ R tiene una gran colección de funciones integradas que se usan así: <img src="img/funcion.png" width="90%" style="display: block; margin: auto;" /> Por ejemplo, para hacer secuencias de números podemos utilizar la función `seq()` del paquete base `{base}`. ```r # generar secuencias de números del 1 al 10 seq(from=1, to=10) ## [1] 1 2 3 4 5 6 7 8 9 10 ``` ] .pull-right[ ```r sqrt(81) # raíz cuadrada ## [1] 9 log(100, 10) # logaritmo base 10 de 100, también log10(100) ## [1] 2 exp(10) # euler elevado a la 10 ## [1] 22026.47 sin(pi/2) # seno de pi medio ## [1] 1 abs(-3.6) # valor absoluto ## [1] 3.6 round(7.12) # redondear ## [1] 7 ``` ] --- class: middle, center, inverse
# Obteniendo ayuda --- .pull-left[ # Desde la consola * `help.start()` proporciona enlaces de ayuda general. * `help.search()` busca en el sistema de ayuda la documentación que coincida con un carácter dado debe introducir cadena de texto. * `help()` proporciona detalles para una función específica instalada en tu pc * `RSiteSearch()` busca la frase clave en manuales de ayuda y listas de correo archivadas en el sitio web de [R Project](http://search.r-project.org/) ```r RSiteSearch("string") ``` ] .pull-right[ # Desde la web *
[oogle](https://www.google.com/) *
StackOverflow en [http://stackoverflow.com/](http://stackoverfl ow.com/questions/tagged/r) *
Cross Validated en [http://stats.stackexchange.com/](http://stats.stackexchange.com/questions/tagged/r) * R-seek en [http://rseek.org/](http://rseek.org/) * R-bloggers en [http://www.r-bloggers.com/](http://www.r-bloggers.com/) ] --- background-color: var(--azul-claro) class: middle, center, inverse
## PRÁCTICA 1 --- #
Práctica: ¡10 minutos! 1. Crea un script denominado "practica1". 2. En el script: (No olvides comentar el código) 1. Crea una variable, asígnale el valor de 20. 2. Crea otra variable, asígnale el valor de 3. 3. Crea otra variable que contenga la resta de la primera y segunda variable que creaste y elévala al cuadrado. 4. Imprime el resultado. 4. Instala los paquetes: `tidyverse`, `openxlsx`, `readxl`, `lubridate`, `magrittr`. --- class: middle, center, inverse <br> <br> ## Introducción a RStudio ## **CAPÍTULO 1** <br> <br> .center[ ### [@lindateachtech
](https://www.linkedin.com/in/lindateachtech/) ### [@lindateachtech
](https://twitter.com/lindateachtech) ]