class: inverse, center, middle <br> #### ProgramaciĂłn y manejo de datos con R (Slides 02) ## Primeros pasos con R <br> ### Pedro J. PĂ©rez #### 2021, mayo ###### (actualizadas el 04-09-2023) <br><br> #### e-mail: [pedro.j.perez@uv.es](mailto:pedro.j.perez@uv.es) #### Web del curso: [https://perezp44.github.io/intro-ds-23-24-web](https://perezp44.github.io/intro-ds-23-24-web) --- class: center ### Recuerda que es muy importante la actitud!!! -- .pull-left[ ##### No hay que agobiarse ... <img src="data:image/png;base64,#../imagenes/ss_03_img_01_angry-computer.jpg" width="95%" style="display: block; margin: auto;" /> ] -- .pull-right[ #### ... mejor dejarse llevar <img src="data:image/png;base64,#../imagenes/ss_03_img_02_baby-surf.jpg" width="95%" style="display: block; margin: auto;" /> ] --- class: inverse, center, middle ### Dar Ăłrdenes a R <html><div style='float:left'></div><hr color='#EB811B' size=1px width=796px></html> #### Es lo primero que hemos de aprender --- ##### Siempre daremos las ordenes a R a travĂ©s de RStudio - Si abres RStudio verás algo parecido a esto <img src="data:image/png;base64,#../imagenes/tt_02_img_01_RStudio-inicial.jpg" width="60%" style="display: block; margin: auto;" /> - Como ves la interfaz de RStudio tiene (al principio) 3 paneles - La .white.bg-green[Consola] es el panel de la izquierda - Empezaremos dando ordenes a R escribiendo en la **Consola** --- ##### Durante el curso daremos ordenes a R de varias maneras: -- 1) En la **consola**: solo hay que escribir la orden y pulsar la tecla .white.bg-green[ENTER] -- - .white.bg-indianred[ Tarea: ] en la consola, intenta darle a R la orden de sumar `2+2` <br> -- 2) Usando un script o **fichero .R**: hay que crear un fichero `.R` siguiendo esta ruta de menĂşs: `File > New file > R Script`. Una vez has creado el fichero, escribes la instrucciĂłn y pulsas las teclas .white.bg-green[CONTROL] + .white.bg-green[ENTER] -- - .white.bg-indianred[ Tarea: ] dale a R la orden de sumar `2+2`, pero esta vez desde un **script** o fichero .R -- - .white.bg-indianred[ Tarea: ] guarda el fichero que has creado. Ponle el nombre "prueba_01.R". ÂżDonde se ha guardado? <br> -- 3) Usando un fichero Rmarkdown o **fichero .Rmd**: tienes que crear un fichero `.Rmd` siguiendo esta ruta de menĂşs: File > New file > R Markdown... - Esta forma la veremos en un ratito, ahora NO. --- ##### Seguimos dando ordenes a R, para ello haz la siguiente .white.bg-indianred[ Tarea:] 1. Cierra RStudio 1. Ejecuta las siguientes lineas de cĂłdigo en R ```r # operaciones básicas con R 2 + 2 2 - 2 2 * 2 2 / 2 # PotenciaciĂłn (se puede hacer con el operador ^ o con **) 3^2 3**2 # raĂz cuadrada sqrt(9) ``` ----------------------------- -- - ÂżCĂłmo lo has hecho? ÂżQuĂ© ha ocurrido? - ÂżLas has ejecutado todas de golpe o una a una? - ÂżAlguien se ha atascado? No ... a ver quien puede hacer que R se atasque. --- class: inverse, center, middle ### CreaciĂłn de Rprojects <html><div style='float:left'></div><hr color='#EB811B' size=1px width=796px></html> #### Siempre trabajaremos dentro de un Rproject, asĂ que hay que saber crearlos --- ##### Durante el curso siempre trabajaremos desde/con Rprojects Para **crear un Rproject** has de: 1. Abrir RStudio 2. Seguir la siguiente ruta de menĂşs: File > New Project > New Directory > New Project 3. Guardar el RProject; para ello has de ponerle un nombre y decidir la ruta donde se creará el RProject. -- <br> ----------------------------------------- .white.bg-indianred[ Tarea: ] Crea un Rproject en el escritorio/Desktop de tu ordenador. Ponle el nombre: "my_proyecto_01" ---------------------------------------- <br> -- - ÂżQuĂ© ha pasado? - ÂżQuĂ© pensáis que es el Rproject que habĂ©is creado? --- ##### Vamos a trabajar la creaciĂłn de Rprojects con la siguiente .white.bg-indianred[ Tarea: ] 1. Cierra RStudio 2. Borra la carpeta del Rproject "my_proyecto_01" 3. Crea un nuevo Rproject llamado "my_proyecto_02" 4. Cierra RStudio 5. Abre el proyecto "my_proyecto_02". (**Aprender a abrir correctamente un RProject es muy importante!!**) -------------------------------- -- ##### Aprender a abrir correctamente un RProject es muy importante!! Hay 2 formas de abrirlo: - La primera es abrir la carpeta del RProject y hacer doble-click en el archivo con extensiĂłn `.Rproj` (sĂ el fichero con el icono de un cubo azulito) - La segunda forma es abrir RStudio y pinchar en el desplegable que hay en la esquina superior-derecha. --- class: inverse, center, middle ### CreaciĂłn de archivos y carpetas dentro de un Rproject <html><div style='float:left'></div><hr color='#EB811B' size=1px width=796px></html> -- #### Los Rprojects son carpetas normales y corrientes para tu sistema operativo, por lo tanto puedes manejarlas desde tu sistema operativo -- #### ... pero tambiĂ©n puedes manejar la carpeta del Rproject desde dentro de RStudio -- #### ... además, al tener el fichero con la extensiĂłn ".Rproj" RStudio las reconoce como un Rproject (facilitándonos algunas cosas) --- ##### Organizando nuestro Rproject Los Rprojects son carpetas donde guardaremos todos los ficheros que nos hagan falta para un análisis de datos. Generalmente nos harán falta datos, imágenes, etc ... y es mejor ser organizado y guardar los datos en una carpeta, las imágenes en otra, etc ... -- ##### En un Rproject podemos crear carpetas de 2 maneras: - Desde tu sistema operativo. Seguro que has creado carpetas!!! - Desde RStudio. En el panel inferior-derecha. En la pestaña "Files", verás un icono que pone "New Folder". PĂnchalo y ... -- ----------------------------------------- .white.bg-indianred[ Tarea: ] crea dos subcarpetas dentro de tu Rproject. Una que se llame "datos" y otra que se llame "imagenes". Crea cada carpeta de una forma diferente. ---------------------------------------- -- ----------------------------------------- .white.bg-indianred[ Tarea: ] borra la subcarpeta "imagenes" ---------------------------------------- -- - ÂżCĂłmo la has borrado? hay dos maneras (bueno más, pero ....) --- class: inverse, center, middle ### Dar Ăłrdenes a R (otra vez) <html><div style='float:left'></div><hr color='#EB811B' size=1px width=796px></html> #### SĂ, esto fue lo primero que hicimos, pero ahora vamos a dar ordenes a R desde dentro del Rproject (realmente es igual, pero ... estamos empezando) ---
−
+
00
:
45
##### .white.bg-indianred[ Tarea: ] dando ordenes a R desde un Rproject 1. Cierra RStudio 1. Vuelve a abrir el Rproject "my_proyecto_02" 1. Desde el RProject, ejecuta las siguientes lineas de cĂłdigo en R 1. No las ejecutes desde la consola, sino desde un archivo .R. Guarda el archivo y llámalo "mis_calculos_01.R" ```r #- Ante la duda usa los parĂ©ntesis 6 + 2 * 5 (6 + 2) * 5 #- Operaciones de varias lineas 2 + 2 + 2 + 2 + 2 + 10 + 30 ``` ----------------------------- -- <br> - ÂżDonde has guardado el archivo "mis_calculos_01.R"? --- class: inverse, center, middle ### Gestionar los archivos de nuestro RProject <html><div style='float:left'></div><hr color='#EB811B' size=1px width=796px></html> #### Hay que aprender a borrar, crear y mover archivos dentro del Rproject (es fácil) --- ##### recuerda que puedes gestionar (borrar, crear, mover, renombrar, ...) los archivos de tu RProject con tu sistema operativo o desde RStudio <br> - **se puede hacer de las 2 maneras**, pero la siguiente la siguiente tarea la vamos a hacer desde RStudio (nos tenemos que familiarizar con Ă©l!!!) -- --------------- .white.bg-indianred[ Tarea: ] - Borra el archivo "mis_calculos_01.R" - Crea otro archivo llamado "mis_calculos_02.R" en la carpeta "datos". En este archivo tienes que escribir una linea de comentario y una linea con una expresiĂłn/orden de R. - Mueve el archivo "mis_calculos_02.R" de la carpeta "datos" a la carpeta raĂz del RProject.
−
+
00
:
35
----------------------------- -- - Bueno, pues yo creo que enough de aprender a manejarse con RStudio. ÂżRecordáis que es RStudio? ÂżQuĂ© es un Rproject? - ÂżY la consola? ÂżY los ficheros .R? --- class: inverse, center, middle # ÂżQuĂ© son los paquetes? <html><div style='float:left'></div><hr color='#EB811B' size=1px width=796px></html> Con R, con la instalaciĂłn básica de R, se pueden hacer una gran variedad de análisis estadĂsticos pero sus capacidades aumentan si instalamos paquetes adicionales. -- <br> Los paquetes de R son colecciones de funciones y datos desarrollados por la comunidad R que podemos usar una vez los hayamos instalado. --- ##### Instalando paquetes - Los paquetes están en repositorios. El repositorio oficial se llama **[CRAN](https://cran.r-project.org/)**. En enero de 2017 [CRAN alcanzĂł los 10.000 paquetes](http://blog.revolutionanalytics.com/2017/01/cran-10000.html) - Hay más repositorios. El más usado es **[Github](https://github.com/)**. - Para **instalar** un paquete de CRAN haremos: .bg-orange[install.packages("nombre-del-paquete")] <br> -- ##### ÂżCĂłmo usar un paquete? - Aunque hayamos instalado un paquete **no podremos usarlo hasta que lo abramos**, hasta que lo "hagamos visible" a R, hasta que lo carguemos en memoria. - Es decir, **cada vez** que vayamos a usar un paquete que ya tenemos instalado, hay que ejecutar .bg-orange[library("nombre-del-paquete")] --- ##### Una idea sencilla pero MUY importante!! 🌟🌟🌟🌟 -- - Los paquetes hay que **instalarlos** .orange2[una sola vez], pero ... -- `... una vez instalados, para poder usarlos ...` -- - ... hay que **"cargarlos en memoria"** .orange2[cada vez] que queramos usarlos. <br> -- ##### Repetimos - SĂłlo hay que instalar los paquetes **una vez**: ```r install.package("tidyverse") ``` -- - **Cada vez** que queramos [cargar un paquete](https://twitter.com/adamhsparks/status/1527527549248872448) hay que: ```r library("tidyverse") ``` -- <br> La .white.bg-indianred[ Tarea: ] está clara: **instala el pkg "tidyverse"** --- class: inverse, center, middle ### Algunos ejemplos <html><div style='float:left'></div><hr color='#EB811B' size=1px width=796px></html> #### Vamos a ver algunos ejemplos para ir familiarizándonos con RStudio, los Rprojects y un poco de la sintaxis de R. --- ##### un primer ejemplo: vamos a hacer un meme con R -- .white.bg-indianred[ Tarea: ] crea un nuevo RProject llamado `my_ejemplo_01` - En el Rproject que has creado ejecuta en un fichero .R el siguiente cĂłdigo ```r #- repo del paquete: https://github.com/GuangchuangYu/meme/ library(meme) #- install.packages("meme") ruta_a_imagen <- system.file("success.jpg", package = "meme") meme(ruta_a_imagen, "SĂŤ q puedes!!!", "TĂş puedes aprender R!!", size = 2.0, color = "purple") ``` -- - ÂżQuĂ© ha pasado? Âżlo entiendes? -- - Igual, te ayuda a entenderlo el ejecutar el siguiente chunk de cĂłdigo ```r library(imager) la_imagen <- load.image(ruta_a_imagen) plot(la_imagen) ``` --- ##### Otra tarea: vamos a hacer otro meme, pero ahora con una foto de internet <br> .panelset[ .panel[.panel-name[Tarea] En la url de abajo hay una foto. Ăšsala para hacer un meme. <br> https://imgs.xkcd.com/comics/bad_map_projection_the_greenland_special.png ] .panel[.panel-name[SoluciĂłn] <br> - Ni se te ocurra mirar la soluciĂłn hasta que lo hayas intentado!!! - te rindes? Bueno, a veces hay que rendirse, mira en el siguiente tab. ] .panel[.panel-name[Más] - Te has rendido, bueno .... ```r my_url <- "https://imgs.xkcd.com/comics/bad_map_projection_the_greenland_special.png" my_foto <- my_url meme::meme(my_foto, upper = "Haremos mapas!!!", lower = "SĂ, y sabremos lo q es una proyecciĂłn!!", size = 1.0 , color = "purple", vjust = 0.25) ``` <br> - En el cĂłdigo anterior Âżsobra alguna instrucciĂłn? ] ] --- class: inverse, center, middle ### Vamos a por más ejemplos <html><div style='float:left'></div><hr color='#EB811B' size=1px width=796px></html> #### Pero ahora no vamos a ir tan pausados, os voy a tirar un poco a la piscina. Recuerda lo de la actitud!!! --- ##### vamos a usar el Rproject "guion_week_01" - Con Ă©l haremos algunos ejemplos más. Para ello, descárgalo desde [aquĂ](https://perezp44.github.io/intro-ds-23-24-web/guiones/guion_week_01.zip) -- - Se te descargará un fichero `.zip`. DescomprĂmelo. VĂ©ras que es un Rproject. -- <br> .white.bg-indianred[ Tarea: ] - **Abre el Rproject** "guion_week_01" (recuerda que se abre desde el fichero .Rproj) - Dentro del Rproject **abre el fichero** "ej_00_ejemplo-inicial.R -- <br> - Ve leyendo el cĂłdigo del fichero e intenta adivinar que hace cada instrucciĂłn - Ejecuta el cĂłdigo linea por linea e intenta entender que está haciendo