class: inverse, center, middle <br> #### Curso de introducción a R (SFPIE) ## Introducción / Presentación <br> ### Pedro J. Pérez #### 2021, mayo ###### (actualizadas el 26-05-2021) <br><br> #### e-mail: [
](mailto:pedro.j.perez@uv.es) [pedro.j.perez@uv.es](mailto:pedro.j.perez@uv.es) #### Web del curso: [
](https://perezp44.github.io/curso_R_SFPIE_2021/) https://perezp44.github.io/curso_R_SFPIE_2021/ --- class: center ## Los profes <br> .pull-left[ <img src="data:image/png;base64,#/home/pjpv/Escritorio/curso_R_SFPIE_2021/slides_curso-R_2021_ok/imagenes/Vicente_Coll2_a.png" width="18%" style="display: block; margin: auto;" /> #### .center[Vicente Coll] .center[Dpto. Economía Aplicada] .center[Universitat de València] .center[e-mail: [
](mailto:vicente.coll@uv.es) [vicente.coll@uv.es](mailto:vicente.coll@uv.es)] ] .pull-right[ <img src="data:image/png;base64,#/home/pjpv/Escritorio/curso_R_SFPIE_2021/slides_curso-R_2021_ok/imagenes/foto_pjp_redondeada.png" width="19%" style="display: block; margin: auto;" /> #### .center[Pedro J. Pérez] .center[Dpto. Análisis Económico] .center[Universitat de València] .center[e-mail: [
](mailto:pedro.j.perez@uv.es) [pedro.j.perez@uv.es](mailto:pedro.j.perez@uv.es)] ] --- class:: inverse2, center # Bienvenidos al curso!!! -- #### .orange2[Esperamos que ...] - los .orange2[nuevos] acaben iniciándose y apreciando a R - a los .orange2[veteranos] con R (R-basers) que se inicien y acaben apreciando el tidyverse - a los .orange2["modernos"] que ya conocen R y el tidyverse que refuercen sus conocimientos -- <br> #### .orange2[también esperamos que ...] - que lo paséis al menos medio bien ... - ... cuanto menos, que no acabéis con dolor de cabeza (para Carmen 😜) --- class:: inverse2 ## En la intro vamos a ver ... 1. ¿Realmente necesito aprender R? 2. ¿Por qué R? <br> -- 3. Primeras ideas: ¿qué son R, RStudio y los paquetes? 4. Un poco de historia reciente de R (R-base vs. tidyverse) 5. Investigación reproducible con Rmarkdown <br> -- 6. Contenidos del curso ... y empezaremos con un ejemplo (básico) que ilustra lo que veremos en el curso --- class: inverse, center, middle ### 1. ¿Realmente necesito aprender R? <html><div style='float:left'></div><hr color='#EB811B' size=1px width=996px></html> <br> #### a) Estamos en la era del Big Data y para hacer "Ciencia de Datos" es necesario programar. <br> #### b) Yo creo que merece la pena pero, lo teneís que decidir vosotros --- ##### Era del Big Data - Estamos inmersos en una época de cambio tecnológico acelerado, conocida como la **era del Big Data** - Necesidad de convertir datos en información que aporte valor a las corporaciones. ##### Data Science (DS) - Ha llevado a la aparición de un nuevo campo de conocimiento que está irrumpiendo con fuerza en muchos planes de estudio: la **Ciencia de Datos** <br> ##### ¿Qué es la Ciencia de Datos? - Disciplina cuyo objetivo es **obtener información/conocimiento** de los datos que genere valor. - Más simple: "usar datos para contestar preguntas" - Pero ... ¿ese no es también el objetivo de la estadística? --- ##### para nosotros la DS será ... - Todo el proceso, todo lo que ocurre, desde que se importan unos datos hasta que se presentan los resultados. <img src="data:image/png;base64,#/home/pjpv/Escritorio/curso_R_SFPIE_2021/slides_curso-R_2021_ok/imagenes/ss_02_img_02_DSa.png" width="85%" style="display: block; margin: auto;" /> --- ##### ¿Que sotfware usar? -- .pull-left[ ##### Point & click programs - Facilidad de uso (a través de .orange2[menús]) <br> <img src="data:image/png;base64,#/home/pjpv/Escritorio/curso_R_SFPIE_2021/slides_curso-R_2021_ok/imagenes/error_Excel_01.png" width="90%" style="display: block; margin: auto;" /> ] -- .pull-right[ ##### Lenguajes de prográmación - Flexibilidad y
eproducibilidad (con .orange2[código]) <br> <blockquote class="twitter-tweet"><p lang="es" dir="ltr">Misión imposible: revisar +8000 pdf's, para sacar variables como edad, nacionalidad, sexo, etc. <br><br>Estaba a punto de empezar a mano con el excel de toda la vida, cuando descubrí pdftools y tesseract... llevo +3000 en menos de 24 hrs.<br><br>I love <a href="https://twitter.com/hashtag/RStats?src=hash&ref_src=twsrc%5Etfw">#RStats</a> 🤓💙<br><br>p.d.: sugerencias? <a href="https://t.co/i8kzh7dNMK">pic.twitter.com/i8kzh7dNMK</a></p>— Daniel Quinteros (@dquinterosr) <a href="https://twitter.com/dquinterosr/status/1356575289791418370?ref_src=twsrc%5Etfw">February 2, 2021</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> ] --- .pull-left[ ##### Una pequeña broma. Broma pero ... <br> <img src="data:image/png;base64,#/home/pjpv/Escritorio/curso_R_SFPIE_2021/slides_curso-R_2021_ok/imagenes/ss_02_img_06_R-como-cars.jpeg" width="100%" style="display: block; margin: auto;" /> ] -- .pull-right[ ##### Programar cuesta (al principio), pero permite hacer muchas cosas nuevas - Por ejemplo, [este trabajo](https://nosan5.github.io/trabajo_BigData_equipo/) se elaboró dentro de una asignatura optativa del grado de Economía. - Tenéis que visitar estas 2 páginas: - [R-bloggers](https://www.r-bloggers.com/) - [R weekly](https://rweekly.org/) - Más recursos: - [CRAN package by task](https://cran.r-project.org/web/views/) - ["Top-40" new CRAN R packages](https://rviews.rstudio.com/2021/03/19/february-2021-top-40-new-cran-packages/) - [Awesome list of R resources](https://github.com/iamericfletcher/awesome-r-learning-resources) - [Otra Awesome R list](https://github.com/qinwf/awesome-R) - [Big Book of R](https://www.bigbookofr.com/) ] --- .pull-left[ ##### OK, medio convencido, pero ... ¿de verdad que tengo que aprender a programar? - **SÍ**. Todo lo que puedas. - Una de las competencias importantes en DS es saber programar, pero … **requiere tiempo**; y .orange2[al principio te sientes] **inútil** <br> <img src="data:image/png;base64,#/home/pjpv/Escritorio/curso_R_SFPIE_2021/slides_curso-R_2021_ok/imagenes/ss_02_img_05_salt.png" width="95%" style="display: block; margin: auto;" /> ] -- .pull-right[ ##### OK, medio convencido. Aunque ... <div class="figure" style="text-align: center"> <img src="data:image/png;base64,#/home/pjpv/Escritorio/curso_R_SFPIE_2021/slides_curso-R_2021_ok/imagenes/ss_00_R--excel.png" alt="From https://twitter.com/kareem_carr/status/1371836385133531155" width="100%" /> <p class="caption">From https://twitter.com/kareem_carr/status/1371836385133531155</p> </div> ] --- class:: inverse2, center <br> ### A veces me pregunto ¿tendríamos que introducir R en nuestras clases? ##### Yo no lo tengo claro del todo. 🤔 <br> <blockquote class="twitter-tweet"><p lang="en" dir="ltr">Too many young students are having their time and money wasted by being forced to use out of date tools like SPSS because their professors are scared of the new stuff. There. I said it. <a href="https://twitter.com/hashtag/rstats?src=hash&ref_src=twsrc%5Etfw">#rstats</a> <a href="https://twitter.com/hashtag/python?src=hash&ref_src=twsrc%5Etfw">#python</a> <a href="https://twitter.com/hashtag/datascience?src=hash&ref_src=twsrc%5Etfw">#datascience</a>.</p>— Keith McNulty (@dr_keithmcnulty) <a href="https://twitter.com/dr_keithmcnulty/status/1382870396408627202?ref_src=twsrc%5Etfw">April 16, 2021</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> --- class: inverse, center, middle ### 2. OK, estoy medio convencido, pero ... ¿por qué R? <html><div style='float:left'></div><hr color='#EB811B' size=1px width=796px></html> <br> #### Sacrílego!!!! 🧙🧙 🔥🔥 #### Por muchas cosas!!! Lo mejor de
su comunidad!! --- ##### ¿por qué R? - **R is the data language**: en Ciencia de datos it’s THE language to beat. - Sólo tiene un rival serio: Phyton. Si no me crees puedes leer sobre ello [aquí](http://nadaesgratis.es/fernandez-villaverde/r), [aquí](https://www.r-bloggers.com/why-r-is-the-best-data-science-language-to-learn-today/), o [aquí](https://shirinsplayground.netlify.com/2017/09/ode_to_r/) - Entre las compañías que usan R están: Google, Facebook, Twitter, Microsoft, IBM, Uber, Ford, Airbnb, American Express, Barclays Bank, Bank of America ... Puedes encontrar un listado más completo [aquí](https://www.listendata.com/2016/12/companies-using-r.html) - Evidentemente, no a todo el mundo le gusta R; por ejemplo [aquí](http://arrgh.tim-smith.us/) o el clásico [R-inferno](http://www.burns-stat.com/documents/books/the-r-inferno/) -- ##### Pero ... ¿y Phyton? .pull-left[ - Phyton es un lenguaje de programación más general, R is more domain specific. Puedes consultar algunas clasificaciones [aquí](https://www.r-bloggers.com/pypl-language-rankings-python-ranks-1-r-at-7-in-popularity/) - Hay muchas opiniones sobre el debate **R vs Phyton** pero .... mira [esta](http://mchow.com/posts/data-science-cbk/), o [esta](https://twitter.com/bhanukjhingan/status/1395410754929520644). - Aunque yo creo que después de lo que dijo Elmo, el debate está zanjado ] -- .pull-right[ <img src="data:image/png;base64,#/home/pjpv/Escritorio/curso_R_SFPIE_2021/slides_curso-R_2021_ok/imagenes/ss_00_Elmo.png" width="57%" style="display: block; margin: auto;" /> ] --- class: inverse, center, middle ### 3.Primeras ideas , ¿qué es esto de R? <html><div style='float:left'></div><hr color='#EB811B' size=1px width=796px></html> <br> #### Conviene saber algunas cosas sobre el universo
#### (R, RStudio, paquetes, tidyverse, Rmarkdown, ....) --- background-image: url(data:image/png;base64,#imagenes/ss_00_RR_icono.jpeg) background-position: 99% 1% background-size: 6% ##### ¿qué es R? - Es un **entorno** para hacer **análisis estadísticos**; de hecho, la página oficial de R se llama [The R Project for Statistical Computing](https://www.r-project.org/) - También es un **lenguaje de programación** - R se distribuye bajo la licencia GNU GPL; o sea, es **software libre** <br> ##### ¿cuando fue creado? - En 1993, por **R. Ihaka** y **R. Gentleman** de la Universidad de Auckland - En 1997 el desarrollo de R se traspasó a un grupo de programadores conocidos como **"The R-core team"** ... - ... pero actualmente, el entorno R es el resultado de la colaboración de la **comunidad de usuarios de R** --- background-image: url(data:image/png;base64,#imagenes/ss_00_RStudio.png) background-position: 99% 1% background-size: 6% <br> ##### ¿qué es RStudio? - Técnicamente es un **IDE** (Integrated development environment) diseñado especialmente para R - Intuitivamente es un **programa que nos facilita dar nuestras ordenes a R**. <br> ##### Diferencias entre R y RStudio - Es importante entender la diferencia entre R y RStudio: R es un entorno/programa para hacer análisis estadísticos y también es un lenguaje de programación; mientras que RStudio es un programa que sirve para poder usar R de manera más cómoda y eficiente. <br> - Para entender la diferencia entre ellos es útil esta **analogía**: si fueran un coche, R sería el motor y RStudio sería el volante y los pedales; es decir, R es el motor que hará los cálculos que le ordenemos a través de RStudio. **Desde RStudio enviaremos nuestras ordenes a R**. --- ##### ¿qué son los paquetes? - 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. - Los paquetes en R son **colecciones de funciones y datos** desarrollados por la comunidad R que podemos usar una vez los hayamos instalado. - **Analogía**: si R fuese un teléfono móvil, los paquetes serían las aplicaciones que instalamos en el móvil. Con R se pueden hacer muchas cosas sin instalar paquetes adicionales, pero si instalamos paquetes aumentan sus funcionalidades. <br> -- ##### los paquetes hay que instalarlos (una vez sólo) y ... <br> ##### ... una vez instalados se han de cargar en memoria para poder usarlos --- ##### Instalando paquetes - Los paquetes están en repositorios. El repositorio oficial se llama **CRAN** - Para **instalar** un paquete de CRAN haremos: .bg-orange[install.packages("nombre-del-paquete")] - Hay más repositorios. El más usado es `Github`. <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")] - **Analogía**: al igual que para usar las aplicaciones de un móvil, primero hay que instalarlas y luego abrirlas, para usar los paquetes de R primero hay que instalarlos en nuestro PC y después, cada vez que los necesitemos para hacer un análisis, hay que “abrirlos” con **library("nombre-del-paquete")**. --- class: inverse, center, middle ### 4. Historia reciente de R <html><div style='float:left'></div><hr color='#EB811B' size=1px width=796px></html> <br> ### R-base vs. tidyverse --- ##### a kind of revolution in
: Hadley y el tidyverse - R era un lenguaje "oscuro" para estadísticos y académicos, pero ... - ... recientemente ha habido una especie de revolución en el universo
-- .pull-left[ - [Hadley Wickham](http://hadley.nz/), científico jefe de RStudio, [revolucionó el universo](https://priceonomics.com/hadley-wickham-the-man-who-revolutionized-r/?utm_campaign=Data%2BElixir&utm_medium=email&utm_source=Data_Elixir_46)
, creando el '*Hadleyverse*' <img src="data:image/png;base64,#/home/pjpv/Escritorio/curso_R_SFPIE_2021/slides_curso-R_2021_ok/imagenes/ss_02_img_07_Hadley.jpg" width="76%" style="display: block; margin: auto;" /> ] -- .pull-right[ - El '*Hadleyverse*', se ha convertido en el [tidyverse](https://www.tidyverse.org/) gracias a un grupo de desarrolladores, por ejemplo: <img src="data:image/png;base64,#/home/pjpv/Escritorio/curso_R_SFPIE_2021/slides_curso-R_2021_ok/imagenes/ss_02_img_08_gente-tidyverse.jpg" width="95%" style="display: block; margin: auto;" /> ] --- background-image: url(data:image/png;base64,#imagenes/ss_05_img_03_tidyverse-hex.png) background-position: 99% 1% background-size: 6% ##### ¿qué es el tidyverse? - Una nueva forma de escribir código y afrontar el análisis de datos con R. - Según su propia página web, el [tidyverse](https://www.tidyverse.org/) es: <img src="data:image/png;base64,#/home/pjpv/Escritorio/curso_R_SFPIE_2021/slides_curso-R_2021_ok/imagenes/ss_05_img_05_pkgs-tidyverse.png" width="65%" style="display: block; margin: auto;" /> - **Traducido**, es un grupo de paquetes que se han diseñado con los mismos principios y que, por tanto, trabajan bien juntos y que han cambiado mucho, y a mejor, la forma de programar y afrontar el análisis de datos con R. - Ahora mismo, el **tidyverse ya es el estándar** --- background-image: url(data:image/png;base64,#imagenes/ss_05_img_03_tidyverse-hex.png) background-position: 99% 1% background-size: 6% ##### R-base vs. tidyverse - Podemos pensar que hay 2 formas de escribir código en
: R-base y tidyverse. - Nosotros escribiremos **à la tidyverse**. - Escribir *à la tidyverse* **tiene ventajas** y, además, es que ya **es el estándar**. -- ##### tiene ventajas, por ejemplo ... En [este tweet](https://twitter.com/andrewheiss/status/1359583543509348356?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1359583543509348356%7Ctwgr%5E%7Ctwcon%5Es1_&ref_url=file%3A%2F%2F%2Fhome%2Fpjpv%2FEscritorio%2Fslides_curso-R_2021_ok%2Fslides_01_intro_a.html1) se ve claramente una de las ventajas: la **claridad y facilidad a la hora de leer el código**. - R-base way: ```r leave_house(get_dressed(get_out_of_bed(wake_up(me, time = "8:00"), side = "correct"), pants = TRUE, shirt = TRUE), car = TRUE, bike = FALSE) ``` -- - à la tidyverse: ```r me %>% wake_up(time = "8:00") %>% get_out_of_bed(side = "correct") %>% get_dressed(pants = TRUE, shirt = TRUE) %>% leave_house(car = TRUE, bike = FALSE) ``` --- background-image: url(data:image/png;base64,#imagenes/ss_00_RR_icono.jpeg) background-position: 99% 1% background-size: 4% ##### Nueva versión: R-4.1.0 La versión 4.1.0 de R fue publicada el 18 de mayo. [Aquí](https://cran.r-project.org/doc/manuals/r-devel/NEWS.html) tienes sus novedades y aquí un [post](https://www.jumpingrivers.com/blog/new-features-r410-pipe-anonymous-functions/) sobre los cambios más relevantes. La novedad más importante es la aparición de una .orange2[pipe nativa**] : .orange2[|>] ##### R-4.1.0 ¿qué pasará en el futuro? <blockquote class="twitter-tweet"><p lang="en" dir="ltr">May the pipe wars begin <a href="https://twitter.com/hashtag/RStats?src=hash&ref_src=twsrc%5Etfw">#RStats</a> <a href="https://t.co/nyGxEvRukq">pic.twitter.com/nyGxEvRukq</a></p>— Christopher McMaster (@DrCMcMaster) <a href="https://twitter.com/DrCMcMaster/status/1395017265058226179?ref_src=twsrc%5Etfw">May 19, 2021</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> --- class: inverse, center, middle ### 5. Investigación reproducible y Rmarkdown <html><div style='float:left'></div><hr color='#EB811B' size=1px width=796px></html> <br> #### En mi opinión R está varios pasos por delante en cuanto a investigación reproducible --- background-image: url(data:image/png;base64,#imagenes/ss_00_new_logo_rmd.png) background-position: 99% 1% background-size: 5% ##### Tidyverse workflow e investigación reproducible <img src="data:image/png;base64,#/home/pjpv/Escritorio/curso_R_SFPIE_2021/slides_curso-R_2021_ok/imagenes/tt_06_img_01_explore-visualice.png" width="60%" style="display: block; margin: auto;" /> -- ##### Para ello ... - Utilizaremos [Rprojects](https://support.rstudio.com/hc/en-us/articles/200526207-Using-Projects) - Haremos informes o documentos reproducibles con **Rmarkdown** --- background-image: url(data:image/png;base64,#imagenes/ss_00_new_logo_rmd.png) background-position: 99% 1% background-size: 5% ##### ¿qué es Rmarkdown? - Podemos pensar que es **una forma de escribir** nuestros informes/análisis directamente desde R. No nos hará falta salir de R, todo se hace en R, desde los cálculos estadísticos, los gráficos, el texto o narrativa y la maquetación. -- ##### Ventaja principal - Nuestros informes serán **reproducibles**. Puede ver [este video](https://www.youtube.com/watch?v=s3JldKoA0zw) o leer [este post](https://rfortherestofus.com/2019/03/r-killer-feature-rmarkdown/) <br> ##### un poco de marketing (Rmarkdown es lo más!!) - En mi opinión R está varios pasos por delante en cuanto a herramientas para la investigación reproducible. - **Rmarkdown** & friends (blogdown, packagedown, bookdown, flex-dashboards, shiny ...) - Puedes verlo visitando [this gallery](https://rmarkdown.rstudio.com/gallery.html). - Para aprender como hacer estos documentos reproducibles puedes ir [aquí](https://rmarkdown.rstudio.com/lesson-1.html) o [aquí](https://bookdown.org/yihui/rmarkdown/) --- class: inverse, center, middle ### 6. Contenidos del curso <html><div style='float:left'></div><hr color='#EB811B' size=1px width=796px></html> <br> #### Veremos todo lo que podamos en 20 h. Tenemos trabajo!!! --- background-image: url(data:image/png;base64,#imagenes/mola-mazo.png) background-position: 99% 1% background-size: 5% ##### Contenidos del curso <br> .pull-left[ 1. **Primeros pasos**: familiarizarse con RStudio y Rprojects 2. Introducción a **R-base** 3. **Importación** de datos 4. **Manejo de datos** à la tidyverse 5. **Gráficos** con ggplot2 6. Informes con **Rmarkdown** ] .pull-right[ <img src="data:image/png;base64,#/home/pjpv/Escritorio/curso_R_SFPIE_2021/slides_curso-R_2021_ok/imagenes/tt_06_img_01_explore-visualice.png" width="95%" style="display: block; margin: auto;" /> ] --- class:: inverse2 <br><br><br> ### Sé que todos somos mayores y muchos de nosotros profesores (o técnicos), pero aún así ... un par de consejos <br> <html><div style='float:left'></div><hr color='#EB811B' size=1px width=996px></html> <br><br> ##### En serio!! Completamente en serio!! --- class: center ### 1. Es muy-muy importante la actitud!!! -- .pull-left[ ##### Hay que intentar no 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: center #### 2. Igual, sólo igual, nos hace falta otra forma de aprender (WTF!!!) -- .pull-left[ <img src="data:image/png;base64,#/home/pjpv/Escritorio/curso_R_SFPIE_2021/slides_curso-R_2021_ok/imagenes/01_Rob-you-use-R.png" width="100%" style="display: block; margin: auto auto auto 0;" /> -- <blockquote class="twitter-tweet"><p lang="en" dir="ltr">I have been using Python for 15 years and have been a matplotlib core developer for over 10. I google things about the library all the time.</p>— Ryan May (@dopplershift) <a href="https://twitter.com/dopplershift/status/1271614146312908800?ref_src=twsrc%5Etfw">June 13, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> ] -- .pull-right[ <blockquote class="twitter-tweet"><p lang="en" dir="ltr">My <a href="https://twitter.com/hashtag/rstats?src=hash&ref_src=twsrc%5Etfw">#rstats</a> learning path:<br><br>1. Install R<br>2. Install RStudio<br>3. Google "How do I [THING I WANT TO DO] in R?"<br><br>Repeat step 3 ad infinitum.</p>— Jesse Mostipak (@kierisi) <a href="https://twitter.com/kierisi/status/898534740051062785?ref_src=twsrc%5Etfw">August 18, 2017</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> ] --- background-image: url(data:image/png;base64,#imagenes/ss_03_img_02_baby-surf.jpg) background-size: cover ### Vengaaaa, vamos allá!!!! #### Nadie se ahogará. We promise!!! (palabrita del niño Jesús)