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 24-05-2022) <br><br> #### [<svg viewBox="0 0 512 512" style="height:1em;position:relative;display:inline-block;top:.1em;" xmlns="http://www.w3.org/2000/svg"> <path d="M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm0 48v40.805c-22.422 18.259-58.168 46.651-134.587 106.49-16.841 13.247-50.201 45.072-73.413 44.701-23.208.375-56.579-31.459-73.413-44.701C106.18 199.465 70.425 171.067 48 152.805V112h416zM48 400V214.398c22.914 18.251 55.409 43.862 104.938 82.646 21.857 17.205 60.134 55.186 103.062 54.955 42.717.231 80.509-37.199 103.053-54.947 49.528-38.783 82.032-64.401 104.947-82.653V400H48z"></path></svg>](mailto:pedro.j.perez@uv.es) [pedro.j.perez@uv.es](mailto:pedro.j.perez@uv.es) --- class: center ## Los profes <br> .pull-left[ <img src="data:image/png;base64,#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: [<svg viewBox="0 0 512 512" style="height:1em;position:relative;display:inline-block;top:.1em;" xmlns="http://www.w3.org/2000/svg"> <path d="M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm0 48v40.805c-22.422 18.259-58.168 46.651-134.587 106.49-16.841 13.247-50.201 45.072-73.413 44.701-23.208.375-56.579-31.459-73.413-44.701C106.18 199.465 70.425 171.067 48 152.805V112h416zM48 400V214.398c22.914 18.251 55.409 43.862 104.938 82.646 21.857 17.205 60.134 55.186 103.062 54.955 42.717.231 80.509-37.199 103.053-54.947 49.528-38.783 82.032-64.401 104.947-82.653V400H48z"></path></svg>](mailto:vicente.coll@uv.es) [vicente.coll@uv.es](mailto:vicente.coll@uv.es)] ] .pull-right[ <img src="data:image/png;base64,#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: [<svg viewBox="0 0 512 512" style="height:1em;position:relative;display:inline-block;top:.1em;" xmlns="http://www.w3.org/2000/svg"> <path d="M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm0 48v40.805c-22.422 18.259-58.168 46.651-134.587 106.49-16.841 13.247-50.201 45.072-73.413 44.701-23.208.375-56.579-31.459-73.413-44.701C106.18 199.465 70.425 171.067 48 152.805V112h416zM48 400V214.398c22.914 18.251 55.409 43.862 104.938 82.646 21.857 17.205 60.134 55.186 103.062 54.955 42.717.231 80.509-37.199 103.053-54.947 49.528-38.783 82.032-64.401 104.947-82.653V400H48z"></path></svg>](mailto:pedro.j.perez@uv.es) [pedro.j.perez@uv.es](mailto:pedro.j.perez@uv.es)] ] --- class:: inverse2, center # Bienvenidos al curso!!! -- <br> #### .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 ... --- class:: inverse2 ## En la intro vamos a ver ... 1. ¿Realmente necesito aprender a programar? ¿no me vale con Excel/SPSS/Stata/... ? 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 <br><br> -- .orange2[ ... (e igual) empezaremos con un ejemplo (básico) que ilustra lo que veremos en el curso] --- class: inverse, center, middle ### 1. ¿Realmente necesito aprender a programar (en R)? <html><div style='float:left'></div><hr color='#EB811B' size=1px width=996px></html> <br> #### Yo creo que sí que merece la pena aprender R pero .... #### logicamente, lo teneís que decidir/valorar vosotros --- ##### Era del Big Data - Estamos inmersos en una época de cambio tecnológico acelerado, conocida como la **era del Big Data** <br> ##### 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. - En DS se hace un **uso intensivo de la programación** (en R o Phyton generalmente) --- ##### La DS se ocupa de ... - Todo el proceso desde que se importan unos datos hasta que se presentan los resultados. <br> <img src="data:image/png;base64,#imagenes/ss_02_img_02_DSa.png" width="85%" style="display: block; margin: auto;" /> --- ##### ¿Que sotfware usar? ¿Point & click programs o lenguajes de programación? -- .pull-left[ - **Con menús**: facilidad de uso; sin embargo, ... <img src="data:image/png;base64,#imagenes/error_Excel_01.png" width="90%" style="display: block; margin: auto;" /> <br> - By the way, <svg viewBox="0 0 581 512" style="height:1em;position:relative;display:inline-block;top:.1em;" xmlns="http://www.w3.org/2000/svg"> <path d="M581 226.6C581 119.1 450.9 32 290.5 32S0 119.1 0 226.6C0 322.4 103.3 402 239.4 418.1V480h99.1v-61.5c24.3-2.7 47.6-7.4 69.4-13.9L448 480h112l-67.4-113.7c54.5-35.4 88.4-84.9 88.4-139.7zm-466.8 14.5c0-73.5 98.9-133 220.8-133s211.9 40.7 211.9 133c0 50.1-26.5 85-70.3 106.4-2.4-1.6-4.7-2.9-6.4-3.7-10.2-5.2-27.8-10.5-27.8-10.5s86.6-6.4 86.6-92.7-90.6-87.9-90.6-87.9h-199V361c-74.1-21.5-125.2-67.1-125.2-119.9zm225.1 38.3v-55.6c57.8 0 87.8-6.8 87.8 27.3 0 36.5-38.2 28.3-87.8 28.3zm-.9 72.5H365c10.8 0 18.9 11.7 24 19.2-16.1 1.9-33 2.8-50.6 2.9v-22.1z"></path></svg> [tiene muchas GUI's](https://r4stats.com/2022/02/09/r-graphical-user-interface-comparison/): programas con menús similares a SPSS. ] -- .pull-right[ - **Con código**: <svg viewBox="0 0 581 512" style="height:1em;position:relative;display:inline-block;top:.1em;" xmlns="http://www.w3.org/2000/svg"> <path d="M581 226.6C581 119.1 450.9 32 290.5 32S0 119.1 0 226.6C0 322.4 103.3 402 239.4 418.1V480h99.1v-61.5c24.3-2.7 47.6-7.4 69.4-13.9L448 480h112l-67.4-113.7c54.5-35.4 88.4-84.9 88.4-139.7zm-466.8 14.5c0-73.5 98.9-133 220.8-133s211.9 40.7 211.9 133c0 50.1-26.5 85-70.3 106.4-2.4-1.6-4.7-2.9-6.4-3.7-10.2-5.2-27.8-10.5-27.8-10.5s86.6-6.4 86.6-92.7-90.6-87.9-90.6-87.9h-199V361c-74.1-21.5-125.2-67.1-125.2-119.9zm225.1 38.3v-55.6c57.8 0 87.8-6.8 87.8 27.3 0 36.5-38.2 28.3-87.8 28.3zm-.9 72.5H365c10.8 0 18.9 11.7 24 19.2-16.1 1.9-33 2.8-50.6 2.9v-22.1z"></path></svg>eproducibilidad y flexibilidad, y ..., pero ... <img src="data:image/png;base64,#imagenes/ss_00_teseract.png" width="65%" style="display: block; margin: auto;" /> <img src="data:image/png;base64,#imagenes/ss_00_medellin.png" width="65%" style="display: block; margin: auto;" /> ] --- .pull-left[ ##### Una pequeña broma. Broma pero ... <br> <img src="data:image/png;base64,#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, [estos trabajos](https://perezp44.github.io/intro-ds-21-22-web/07-trabajos.html) se elaboraron como trabajos de una asignatura optativa del grado de Economía. - Tenéis que visitar estas 2 páginas: - [R weekly](https://rweekly.org/) - [R-bloggers](https://www.r-bloggers.com/) - Más recursos: - [CRAN package by task](https://cran.r-project.org/web/views/) y [II](https://github.com/cran-task-views/ctv) - ["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,#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,#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 ### A veces me pregunto ¿tendríamos que introducir R en nuestras clases? ##### Yo no lo tengo claro del todo. 🤔 -- .pull-left[ <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> ] .pull-right[ <blockquote class="twitter-tweet"><p lang="en" dir="ltr">Folks, how do you efficiently deliver to students that R is a skill that potential employers may prefer over Stata or SPSA?<br><br>My ideas was to show that there is a “Google R Style Guide” but not for the other two. <br><br>Help out a poor undergrad methods instructor 🥲</p>— Seo-young Silvia Kim (@sysilviakim) <a href="https://twitter.com/sysilviakim/status/1485409680255901700?ref_src=twsrc%5Etfw">January 24, 2022</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> #### [Por muchas cosas!!!](https://mobile.twitter.com/tanya_shapiro/status/1516212841761681415) Lo mejor de <svg viewBox="0 0 581 512" style="height:1em;position:relative;display:inline-block;top:.1em;" xmlns="http://www.w3.org/2000/svg"> <path d="M581 226.6C581 119.1 450.9 32 290.5 32S0 119.1 0 226.6C0 322.4 103.3 402 239.4 418.1V480h99.1v-61.5c24.3-2.7 47.6-7.4 69.4-13.9L448 480h112l-67.4-113.7c54.5-35.4 88.4-84.9 88.4-139.7zm-466.8 14.5c0-73.5 98.9-133 220.8-133s211.9 40.7 211.9 133c0 50.1-26.5 85-70.3 106.4-2.4-1.6-4.7-2.9-6.4-3.7-10.2-5.2-27.8-10.5-27.8-10.5s86.6-6.4 86.6-92.7-90.6-87.9-90.6-87.9h-199V361c-74.1-21.5-125.2-67.1-125.2-119.9zm225.1 38.3v-55.6c57.8 0 87.8-6.8 87.8 27.3 0 36.5-38.2 28.3-87.8 28.3zm-.9 72.5H365c10.8 0 18.9 11.7 24 19.2-16.1 1.9-33 2.8-50.6 2.9v-22.1z"></path></svg> [su comunidad](https://twitter.com/WillBall12/status/1495068050118389768)!! --- ##### ¿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/) -- <br> ##### Pero ... ¿y Phyton? - Hay muchas opiniones sobre el debate **R vs Phyton**, por ejemplo: [esta](http://mchow.com/posts/data-science-cbk/), [esta](https://twitter.com/bhanukjhingan/status/1395410754929520644), [esta](https://www.youtube.com/watch?v=wWABGUGv-Bg&feature=youtu.be) o [esta](https://www.youtube.com/watch?v=JAEs5IAhAYY). - Phyton es un lenguaje de programación más general, **R is more domain specific**. Puedes consultar algunas **clasificaciones** [aquí](https://blog.revolutionanalytics.com/2018/06/pypl-programming-language-trends.html) --- .pull-left[ ##### by the way ... parece que seguimos creciendo!! <img src="data:image/png;base64,#imagenes/ss_00_descargas_R.png" width="72%" style="display: block; margin: auto;" /> ] -- .pull-right[ ##### además, yo me fio de Elmo!!! <img src="data:image/png;base64,#imagenes/ss_00_Elmo.png" width="75%" 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 <svg viewBox="0 0 581 512" style="height:1em;position:relative;display:inline-block;top:.1em;" xmlns="http://www.w3.org/2000/svg"> <path d="M581 226.6C581 119.1 450.9 32 290.5 32S0 119.1 0 226.6C0 322.4 103.3 402 239.4 418.1V480h99.1v-61.5c24.3-2.7 47.6-7.4 69.4-13.9L448 480h112l-67.4-113.7c54.5-35.4 88.4-84.9 88.4-139.7zm-466.8 14.5c0-73.5 98.9-133 220.8-133s211.9 40.7 211.9 133c0 50.1-26.5 85-70.3 106.4-2.4-1.6-4.7-2.9-6.4-3.7-10.2-5.2-27.8-10.5-27.8-10.5s86.6-6.4 86.6-92.7-90.6-87.9-90.6-87.9h-199V361c-74.1-21.5-125.2-67.1-125.2-119.9zm225.1 38.3v-55.6c57.8 0 87.8-6.8 87.8 27.3 0 36.5-38.2 28.3-87.8 28.3zm-.9 72.5H365c10.8 0 18.9 11.7 24 19.2-16.1 1.9-33 2.8-50.6 2.9v-22.1z"></path></svg> #### (R, RStudio, paquetes, tidyverse, Rmarkdown, Rprojects ...) --- 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% ##### ¿qué es RStudio? - Técnicamente es un **IDE** (Integrated development environment) diseñado especialmente para R - Intuitivamente es un **programa que facilita dar nuestras ordenes a R**. - RStudio fue [creado en 2011](https://www.rstudio.com/blog/rstudio-new-open-source-ide-for-r/) -- ##### 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> -- ##### ¿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 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/)**. - 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!! 🌟🌟🌟🌟 <br> -- - 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") ``` --- 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 <svg viewBox="0 0 581 512" style="height:1em;position:relative;display:inline-block;top:.1em;" xmlns="http://www.w3.org/2000/svg"> <path d="M581 226.6C581 119.1 450.9 32 290.5 32S0 119.1 0 226.6C0 322.4 103.3 402 239.4 418.1V480h99.1v-61.5c24.3-2.7 47.6-7.4 69.4-13.9L448 480h112l-67.4-113.7c54.5-35.4 88.4-84.9 88.4-139.7zm-466.8 14.5c0-73.5 98.9-133 220.8-133s211.9 40.7 211.9 133c0 50.1-26.5 85-70.3 106.4-2.4-1.6-4.7-2.9-6.4-3.7-10.2-5.2-27.8-10.5-27.8-10.5s86.6-6.4 86.6-92.7-90.6-87.9-90.6-87.9h-199V361c-74.1-21.5-125.2-67.1-125.2-119.9zm225.1 38.3v-55.6c57.8 0 87.8-6.8 87.8 27.3 0 36.5-38.2 28.3-87.8 28.3zm-.9 72.5H365c10.8 0 18.9 11.7 24 19.2-16.1 1.9-33 2.8-50.6 2.9v-22.1z"></path></svg>: 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 <svg viewBox="0 0 581 512" style="height:1em;position:relative;display:inline-block;top:.1em;" xmlns="http://www.w3.org/2000/svg"> <path d="M581 226.6C581 119.1 450.9 32 290.5 32S0 119.1 0 226.6C0 322.4 103.3 402 239.4 418.1V480h99.1v-61.5c24.3-2.7 47.6-7.4 69.4-13.9L448 480h112l-67.4-113.7c54.5-35.4 88.4-84.9 88.4-139.7zm-466.8 14.5c0-73.5 98.9-133 220.8-133s211.9 40.7 211.9 133c0 50.1-26.5 85-70.3 106.4-2.4-1.6-4.7-2.9-6.4-3.7-10.2-5.2-27.8-10.5-27.8-10.5s86.6-6.4 86.6-92.7-90.6-87.9-90.6-87.9h-199V361c-74.1-21.5-125.2-67.1-125.2-119.9zm225.1 38.3v-55.6c57.8 0 87.8-6.8 87.8 27.3 0 36.5-38.2 28.3-87.8 28.3zm-.9 72.5H365c10.8 0 18.9 11.7 24 19.2-16.1 1.9-33 2.8-50.6 2.9v-22.1z"></path></svg> -- .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) <svg viewBox="0 0 581 512" style="height:1em;position:relative;display:inline-block;top:.1em;" xmlns="http://www.w3.org/2000/svg"> <path d="M581 226.6C581 119.1 450.9 32 290.5 32S0 119.1 0 226.6C0 322.4 103.3 402 239.4 418.1V480h99.1v-61.5c24.3-2.7 47.6-7.4 69.4-13.9L448 480h112l-67.4-113.7c54.5-35.4 88.4-84.9 88.4-139.7zm-466.8 14.5c0-73.5 98.9-133 220.8-133s211.9 40.7 211.9 133c0 50.1-26.5 85-70.3 106.4-2.4-1.6-4.7-2.9-6.4-3.7-10.2-5.2-27.8-10.5-27.8-10.5s86.6-6.4 86.6-92.7-90.6-87.9-90.6-87.9h-199V361c-74.1-21.5-125.2-67.1-125.2-119.9zm225.1 38.3v-55.6c57.8 0 87.8-6.8 87.8 27.3 0 36.5-38.2 28.3-87.8 28.3zm-.9 72.5H365c10.8 0 18.9 11.7 24 19.2-16.1 1.9-33 2.8-50.6 2.9v-22.1z"></path></svg>, creando el '*Hadleyverse*' <img src="data:image/png;base64,#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,#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,#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](https://twitter.com/R_Hisp/status/1399635575712399360) --- 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 <svg viewBox="0 0 581 512" style="height:1em;position:relative;display:inline-block;top:.1em;" xmlns="http://www.w3.org/2000/svg"> <path d="M581 226.6C581 119.1 450.9 32 290.5 32S0 119.1 0 226.6C0 322.4 103.3 402 239.4 418.1V480h99.1v-61.5c24.3-2.7 47.6-7.4 69.4-13.9L448 480h112l-67.4-113.7c54.5-35.4 88.4-84.9 88.4-139.7zm-466.8 14.5c0-73.5 98.9-133 220.8-133s211.9 40.7 211.9 133c0 50.1-26.5 85-70.3 106.4-2.4-1.6-4.7-2.9-6.4-3.7-10.2-5.2-27.8-10.5-27.8-10.5s86.6-6.4 86.6-92.7-90.6-87.9-90.6-87.9h-199V361c-74.1-21.5-125.2-67.1-125.2-119.9zm225.1 38.3v-55.6c57.8 0 87.8-6.8 87.8 27.3 0 36.5-38.2 28.3-87.8 28.3zm-.9 72.5H365c10.8 0 18.9 11.7 24 19.2-16.1 1.9-33 2.8-50.6 2.9v-22.1z"></path></svg>: R-base y tidyverse. - Nosotros escribiremos, principalmente, **à la tidyverse**. - Escribir *à la tidyverse* [tiene ventajas](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) y, además, es que [ya es el estándar](https://twitter.com/R_Hisp/status/1399635575712399360) <br> -- ##### tiene ventajas, p. ej ... 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** (el operador %>% se llama "the pipe"): ```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% ##### Pipe nativa (|>) - La [versión 4.1.0 de R](https://www.jumpingrivers.com/blog/new-features-r410-pipe-anonymous-functions/) supuso la aparición de una **pipe nativa** en R: **|>** - En la [versión 4.2.0](https://cran.r-project.org/doc/manuals/r-devel/NEWS.html) se mejora la pipe nativa introduciendo un ["placeholder"](https://twitter.com/henrikbengtsson/status/1501306369319735300). - Aún así, la pipe nativa tiene algunas limitaciones: [aquí](https://github.com/bwiernik/pipebind/), [aquí](https://github.com/bwiernik/pipebind/) y [aquí](https://ivelasq.rbind.io/blog/understanding-the-r-pipe/) ##### ¿qué pasará en el futuro? - Pues parece que ahora sí que [esto va en serio](https://twitter.com/hadleywickham/status/1519313737773158401?ref_src=twsrc%5Egoogle%7Ctwcamp%5Eserp%7Ctwgr%5Etweet%7Ctwtr%5Etrue) <img src="data:image/png;base64,#imagenes/ss_00_new_pipe.jpeg" width="45%" style="display: block; margin: auto 0 auto auto;" /> --- 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,#imagenes/tt_06_img_01_explore-visualice.png" width="60%" style="display: block; margin: auto;" /> -- - Realizaremos **todas las etapas con R**, sin cambiar de programa; y además, como queremos que nuestros análisis sean **reproducibles** usaremos ... <br> -- ##### usaremos ... - [Rprojects](https://support.rstudio.com/hc/en-us/articles/200526207-Using-Projects) - [Rmarkdown](https://rmarkdown.rstudio.com/) para hacer informes o documentos reproducibles. --- 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> ##### Rmarkdown lo veremos el último día, pero ... - 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 <br> 4\. **Manejo de datos** à la tidyverse 5\. **Gráficos** con ggplot2 6\. Informes con **Rmarkdown** ] .pull-right[ <img src="data:image/png;base64,#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;" /> <br> .small[**Errores tontos**, we will have [a few](https://twitter.com/cogscimom/status/1354508785365078016/photo/1), well ... [a lot](https://twitter.com/WeAreRLadies/status/1523777331386458178). Es un poco frustante, pero [completamente normal](https://twitter.com/allison_horst/status/1213275783675822080?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1213275783675822080%7Ctwgr%5E%7Ctwcon%5Es1_&ref_url=https%3A%2F%2Fperezp44.github.io%2Fintro-ds-21-22-web%2Ftutoriales%2Ftt_02_primeros-pasos-con-R.html) !!!!!!] ] -- .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!!!) -- - Creo que [este video](https://www.youtube.com/watch?v=_5LhYsKpOOA) os puede ayudar. -- - [Aquí](https://jakevdp.github.io/PythonDataScienceHandbook/01.01-help-and-documentation.html) señalan que: Being an effective practitioner of DS is **less about memorizing** the tool or command you should use for every possible situation, and **more about learning to effectively find the information you don't know**, whether through a web search engine or another means. - Es decir, hay que saber **buscar ayuda**, por ejemplo, [aquí](https://r4ds.hadley.nz/workflow-getting-help.html), [aquí](https://support.rstudio.com/hc/en-us/articles/200552336-Getting-Help-with-R) o [aquí](https://www.r-project.org/help.html), lo explican bien. Un [ejemplo](https://twitter.com/MaxPrimbs/status/1514544495349612546) -- .pull-left[ <img src="data:image/png;base64,#imagenes/ss_01_escolta_matplotlib.png" width="98%" style="display: block; margin: auto auto auto 0;" /> Links to tweets: [1](https://twitter.com/dopplershift/status/1271614146312908800?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1271614146312908800%7Ctwgr%5E%7Ctwcon%5Es1_&ref_url=file%3A%2F%2F%2Fhome%2Fpjpv%2FEscritorio%2Fcurso_R_SFPIE_2022%2Fslides_curso-R_2021_ok%2Fslides_01_intro_v2.html41), [2](https://twitter.com/kierisi/status/898534740051062785?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E898534740051062785%7Ctwgr%5E%7Ctwcon%5Es1_&ref_url=file%3A%2F%2F%2Fhome%2Fpjpv%2FEscritorio%2Fcurso_R_SFPIE_2022%2Fslides_curso-R_2021_ok%2Fslides_01_intro_v2.html41), [3](https://twitter.com/kimistry8/status/1398013181700812801), y [4](https://twitter.com/DrAnkurJamwal/status/1528285380260134912) ] -- .pull-right[ <img src="data:image/png;base64,#imagenes/ss_01_jessy_montipak.png" width="75%" style="display: block; margin: auto auto auto 0;" /> <img src="data:image/png;base64,#imagenes/ss_01_googling_2.png" width="75%" style="display: block; margin: auto auto auto 0;" /> ] --- 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!! -- <img src="data:image/png;base64,#imagenes/ss_00_tu_puedes.png" width="20%" style="display: block; margin: auto auto auto 0;" />