class: inverse, center, middle <br> #### Programación y manejo de datos con R (slides 01) ## Introducción (Tema 1) <br> ### Pedro J. Pérez #### 2021, mayo ###### (actualizadas el 07-09-2022) <br><br> #### e-mail: [pedro.j.perez@uv.es](mailto:pedro.j.perez@uv.es) #### Web del curso: [https://perezp44.github.io/intro-ds-22-23-web](https://perezp44.github.io/intro-ds-22-23-web) --- class: inverse, center, middle ### 1. Para analizar datos, ¿realmente necesito aprender R? <html><div style='float:left'></div><hr color='#EB811B' size=1px width=996px></html> <br> -- #### Bueno ... estamos en la era del Big Data y para hacer "Ciencia de Datos" es necesario programar. #### Además, R es, junto con Phyton, el principal lenguaje para hacer DS. --- ##### Era del Big Data - Estamos inmersos en una época de cambio tecnológico acelerado, conocida como la **era del Big Data**. - Una parte importante de esos avances están relacionados con la **abundancia de datos**. - Los datos masivos han posibilitado grandes avances en un campo de investigación como es el **Machine Learning/Deep Learning** -- ##### Datos másivos (Big data) - "The world’s **most valuable resource** is no longer oil, but **data**" (The Economist, 2017). - Necesidad de convertir datos en información que aporte valor a las corporaciones. - Pero ... no siempre es fácil, por ejemplo: las tres **v**’s del Big Data: **v**olumen, **v**elocidad y **v**ariedad. - 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** - Los datos masivos también han hecho surgir una serie de retos: privacidad, **sesgos en los algoritmos**. --- ##### IA, ML y DL - Los datos masivos han posibilitado grandes avances en un campo de investigación como es el **Machine Learning/Deep Learning**. - La idea fundamental en que se basa la **Inteligencia Artificial** es conseguir que una computadora resuelva un problema complejo como lo haría un humano - 3 etapas: inicios, sistemas expertos y ML/DL -- - En ML/DL no hay que codificar las reglas, sino que se provee a un algoritmo con suficientes datos y este **encuentra las reglas por si mismo**; es decir, en cierto sentido "aprende". - Este enfoque ha posibilitado que muchas tareas "humanas" se hayan **automatizado**. - Un sistema/programa de ML es entrenado más que explicitamente programado. -- - **Deep Learning** es un subconjunto del ML. Utiliza técnicas/algoritmos más complejas en términos computacionales y, por lo tanto, necesitan para aprender un mayor volumen de datos, pero su filosofía es la misma: proveer datos para que el ordenador aprenda a resolver y automatizar una tarea concreta. --- ##### ¿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? -- ##### Estadística versus Data Science (DS). ¿Es lo mismo? - Bueno ..., sí y no. <img src="data:image/png;base64,#../imagenes/ss_02_img_01_stats-vs-DS_02.png" width="45%" style="display: block; margin: auto;" /> --- ##### 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,#../imagenes/ss_02_img_02_DSa.png" width="85%" style="display: block; margin: auto;" /> --- ##### DS es un buen trabajo? - "The **data scientist** is the **sexiest job** of the century" : [Harvard Business Review (2012)](https://hbr.org/2012/10/data-scientist-the-sexiest-job-of-the-21st-century). - Según [este artículo de HBR](https://hbr.org/2022/07/is-data-scientist-still-the-sexiest-job-of-the-21st-century), parece que **en 2022** todavía sigue siendo un empleo muy demandado. <br> ##### para ser "científico de datos", ¿qué necesito saber? - Para un data scientist son muy importantes las hackings skills (programación) <img src="data:image/png;base64,#../imagenes/ss_02_img_03_DS-venn.png" width="33%" 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;" /> <br> - Salvo que te fíes de OpenAI y [GPT-3](https://beta.openai.com/playground) ] -- .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> ] --- ##### Investigación reproducible y software libre - Para que un análisis con datos sea **reproducible**, no sólo es necesario que los datos utilizados han de ser accesibles, sino que cómo mínimo debería: - proporcionar los datos originales (obviamente documentar las fuentes) - efectuar todo el proceso a través de código (scripts) - documentar el proceso de trabajo (por ejemplo el orden en que se ejecutaron los scripts) -- <br> - Además debería utilizar **software libre** - En el curso usaremos **R** --- class: inverse, center, middle ### 2. OK, 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!!!](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;" /> ] --- .pull-left[ ##### ... además, ¿quien fue el ganador del primer campeonato #SLICED de DS? 🏅 😃 <blockquote class="twitter-tweet"><p lang="en" dir="ltr">CONGRATULATIONS to the <a href="https://twitter.com/hashtag/SLICED?src=hash&ref_src=twsrc%5Etfw">#SLICED</a> season one winner: <a href="https://twitter.com/drob?ref_src=twsrc%5Etfw">@drob</a>!!! 📊🔪 <br><br>Catch the replay of last night's action-packed showdown between <a href="https://twitter.com/drob?ref_src=twsrc%5Etfw">@drob</a> and <a href="https://twitter.com/EthanCDouglas?ref_src=twsrc%5Etfw">@EthanCDouglas</a> on Twitch: <a href="https://t.co/Uh61pGpbtW">https://t.co/Uh61pGpbtW</a><br><br>Huge thanks from me and <a href="https://twitter.com/nickwan?ref_src=twsrc%5Etfw">@nickwan</a> to all of our contestants, supporters, and viewers! <a href="https://t.co/B39G9w7bc8">pic.twitter.com/B39G9w7bc8</a></p>— Meg Risdal 👾 (@MeganRisdal) <a href="https://twitter.com/MeganRisdal/status/1428039365008060424?ref_src=twsrc%5Etfw">August 18, 2021</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> ] -- .pull-right[ ##### ... aunque Phyton sigue a lo suyo <blockquote class="twitter-tweet"><p lang="en" dir="ltr">«it's been 10 months since <a href="https://twitter.com/hashtag/Python?src=hash&ref_src=twsrc%5Etfw">#Python</a> first claimed the index's No. 1 spot last October, "becoming the only language besides Java and C to hold the No. 1 position."» <a href="https://twitter.com/hashtag/tiobe?src=hash&ref_src=twsrc%5Etfw">#tiobe</a> <a href="https://t.co/D1iuY38Yq7">https://t.co/D1iuY38Yq7</a> <a href="https://t.co/6EX33XGEad">pic.twitter.com/6EX33XGEad</a></p>— Jose Blanco Oliver (@jbo) <a href="https://twitter.com/jbo/status/1559543561380659201?ref_src=twsrc%5Etfw">August 16, 2022</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> ] --- 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 ... quarto) --- background-image: url(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(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 nos 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/)**. 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!! 🌟🌟🌟🌟 <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(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(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(imagenes/ss_05_img_03_tidyverse-hex.png) background-position: 99% 1% background-size: 5% ##### The philosophy of the tidyverse Puedes leer el [tidy tools manifesto](https://cran.r-project.org/web/packages/tidyverse/vignettes/manifesto.html), pero estas 4 ideas capturan su esencia: <br> - Encadenar funciones con **the pipe** (` %>% `) <br> - "Programs must be written for people to read, and only incidentally for machines to execute" --- Hal Abelson <br> - "If I had one thing to tell biologists learning bioinformatics, it would be write **code for humans**, write **data for computers**" --- Vince Buffalo <br> - "An important aspect of writing data for computers is to **make your data TIDY**" --- Jenny Bryan --- background-image: url(imagenes/ss_05_img_03_tidyverse-hex.png) background-position: 99% 1% background-size: 5% ##### Tidyverse workflow & Reproducible Research <img src="data:image/png;base64,#../imagenes/tt_06_img_01_explore-visualice.png" width="60%" style="display: block; margin: auto;" /> -- <img src="data:image/png;base64,#../imagenes/tidy_worflo_infografic.png" width="60%" style="display: block; margin: auto;" /> --- background-image: url(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á(ba) varios pasos por delante en cuanto a investigación reproducible --- background-image: url(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/) o [Quarto](https://quarto.org/) para hacer informes o documentos reproducibles. --- background-image: url(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/) -- ##### 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/) -- ##### pero ... ¿y Quarto? 🤔🤔 --- class:: inverse2 <br><br><br> ### Antes de abrir RStudio: sé que todos somos mayores y que casí sois Graduados 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;" /> ] -- .pull-right[ <img src="data:image/png;base64,#../imagenes/ss_01_jessy_montipak.png" width="81%" style="display: block; margin: auto auto auto 0;" /> <img src="data:image/png;base64,#../imagenes/ss_01_googling_2.png" width="79%" style="display: block; margin: auto auto auto 0;" /> ] --- ##### bueno ... igual no basta solo con googlear, pero es un buen comienzo .pull-left[ <img src="data:image/png;base64,#../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">My 10 Tips for Getting Help in R: <a href="https://t.co/OxK1iilbsr">https://t.co/OxK1iilbsr</a><br>TL;DR:<br>📖Read the docs<br>🔍Google the error<br>🧠Search smarter not harder<br>🔥Burn it all down<br>🔁Make a reprex<br>🐦Ask Twitter w/ <a href="https://twitter.com/hashtag/rstats?src=hash&ref_src=twsrc%5Etfw">#rstats</a><br>☎️Phone a friend<br>😴Sleep on it<br>💬Ask your q on an online community<br>🙋File an issue on GitHub</p>— Dr. Sam Tyner (@sctyner) <a href="https://twitter.com/sctyner/status/1206986161434058752?ref_src=twsrc%5Etfw">December 17, 2019</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> - Quizás lo mejor sea pedir ayuda en foros mediante un [reprex](https://www.tidyverse.org/blog/2021/02/reprex-1-0-0/) , pero ... aún no ] .pull-right[ - Sí, saber **buscar información** es una **competencia clave**: > **La educación debería apoyarse no en libros de texto, sino en el desarrollo de la capacidad de búsqueda y cualificación de información en la red** ... la verdad no está entre las páginas de un libro ... la verdad está ahí fuera, y solo mediante los adecuados mecanismos activos y conscientes de contraste y verificación aprendemos a capturarla -- Enrique Dans en [El problema de las noticias falsas está en la educación](https://www.enriquedans.com/2018/03/el-problema-de-las-noticias-falsas-esta-en-la-educacion.html) - Enrique Dans también dice que hay que [matar el libro de texto](https://www.enriquedans.com/2012/10/matar-al-libro-de-texto-mi-columna-en-expansion.html) ] --- background-image: url(data:image/png;base64,#../imagenes/ss_03_img_02_baby-surf.jpg) background-size: cover ### Vengaaaa, vamos allá!!!! -- <img src="data:image/png;base64,#../imagenes/ss_00_tu_puedes.png" width="20%" style="display: block; margin: auto auto auto 0;" />