class: title-slide, center, middle #.title[Introduzione a R] #.subtitle[Presentazione del corso] <img src="data:image/png;base64,#img/arca_logo.svg" width="10%" style="display: block; margin: auto;" /> ###.location[ARCA - @DPSS] ###.author[Filippo Gambarota] --- class: section, center, middle # In cosa consiste questo corso? --- # Gli obiettivi principali - Impareremo tutti gli **elementi principali** che compongono il linguaggio R - Impareremo i **costrutti della programmazione** e la loro applicazione in R - Impareremo a **impostare un progetto** in R <iframe src="https://giphy.com/embed/75ZaxapnyMp2w" width="300" height="300" frameBorder="0"></iframe --- # Altri obiettivi importanti - Imparare la .imp[logica generale della programmazione] spendibile con qualsiasi linguaggio - Imparare gli elementi di base per poi stare al passo con la .imp[velocissima evoluzione di R] - Migliorare il modo di affrontare i problemi e .imp[rendere più efficiente il lavoro quotidiano] <iframe src="https://giphy.com/embed/26BoDGStUAafwdZII" width="300" height="300" frameBorder="0"></iframe --- class: section, center, middle # Organizzazione pratica --- # Il materiale principale - Libro [**Introduction2R**](https://psicostat.github.io/Introduction2R/) disponibile online su Github <svg viewBox="0 0 496 512" style="height:1em;position:relative;display:inline-block;top:.1em;" xmlns="http://www.w3.org/2000/svg"> <path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"></path></svg> - Repository Github del corso [https://github.com/arca-dpss/course-R](https://github.com/arca-dpss/course-R) accessibile anche al sito web [https://arca-dpss.github.io/course-R](https://arca-dpss.github.io/course-R) - Altra documentazione, link e materiale collegato --- # Organizzazione delle lezioni Il miglior modo per imparare un linguaggio è sicuramente la **pratica con dati o piccoli problemi da risolvere**. E' anche importante però avere una **comprensione teorico-logica dei vari argomenti** per poter essere più autonomi possibile. -- - Presentazione degli argomenti principali con gli aspetti teorici più importanti - Applicazione direttamente scrivendo codice - Comprensione dei risultati del codice, dei messaggi di errore e dei casi particolari --- # Materiale di supporto - Il materiale del corso (principalmente scripts, slides e link) sarà disponibile alla pagina Github <svg viewBox="0 0 496 512" style="height:1em;position:relative;display:inline-block;top:.1em;" xmlns="http://www.w3.org/2000/svg"> <path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"></path></svg>: [arca-dpss/course-R](https://github.com/arca-dpss/course-R) - Il materiale e i vari link sono facilmente consultabili nel [sito associato](https://arca-dpss.github.io/course-R/). --- # Un cenno al libro Il libro è disponibile online ed è interamente scritto in R (si si possono scrivere anche libri 😄). Il libro è in costante *work in progress* in base a errori, feedback e aggiornamenti stessi di R. Il libro è nato da un'idea del mio amico e collega Claudio Zandonella Callegher ed io ho contribuito in alcune sezioni. Potete attivamente contribuire allo sviluppo del libro fornendoci: .pull-left[ - suggerimenti - **segnalare errori** - segnalare parti non chiare ] .pull-right[ <iframe src="https://giphy.com/embed/FaMmrCXe5zx2QZfkh6" width="200" height="200" frameBorder="0"></iframe ] --- # Segnalare errori libro In particolare, errori di scrittura o imprecisioni sono le cose più importanti. Per questo ho pensato ad un modo efficiente per gestire il tutto. Trovate istruzioni dettagliate [qui](https://filippogambarota.github.io/corsoR/), in breve: .pull-left[ - trovate un errore o imprecisione - aprire il [documento condiviso](https://docs.google.com/spreadsheets/d/1YmXN3iDtiyfLkhW246cICC_4X8S7xqWuN-EiLVDiAT8/edit#gid=0) - riportare tutti i dettagli - sentirsi soddisfatti 😄 ] .pull-right[ <iframe src="https://giphy.com/embed/FaMmrCXe5zx2QZfkh6" width="200" height="200" frameBorder="0"></iframe ] --- class: section, center, middle # Esame 😱 --- # Esame 😱 - Consiste in **20 domande** a scelta multipla con una sola risposta corretta - **45 minuti** a disposizione - I punteggi sono assegnati con la seguente modalità : - **1 punto** per ogni **risposta corretta** - **-0.33 punti** per ogni **risposta sbagliata** - **0 punti** per ogni **risposta non data** - Per superare l'esame è necessario ottenere **almeno 15 punti (75%) sul totale di 20 punti**. --- class: section, center, middle # Che cos'è R --- # <svg role="img" viewBox="0 0 24 24" style="height:1em;position:relative;display:inline-block;top:.1em;" xmlns="http://www.w3.org/2000/svg"> <title></title> <path d="M12 2.746c-6.627 0-12 3.599-12 8.037 0 3.897 4.144 7.144 9.64 7.88V16.26c-2.924-.915-4.925-2.755-4.925-4.877 0-3.035 4.084-5.494 9.12-5.494 5.038 0 8.757 1.683 8.757 5.494 0 1.976-.999 3.379-2.662 4.272.09.066.174.128.258.216.169.149.25.363.372.544 2.128-1.45 3.44-3.437 3.44-5.631 0-4.44-5.373-8.038-12-8.038zm-2.111 4.99v13.516l4.093-.002-.002-5.291h1.1c.225 0 .321.066.549.25.272.22.715.982.715.982l2.164 4.063 4.627-.002-2.864-4.826s-.086-.193-.265-.383a2.22 2.22 0 00-.582-.416c-.422-.214-1.149-.434-1.149-.434s3.578-.264 3.578-3.826c0-3.562-3.744-3.63-3.744-3.63zm4.127 2.93l2.478.002s1.149-.062 1.149 1.127c0 1.165-1.149 1.17-1.149 1.17h-2.478zm1.754 6.119c-.494.049-1.012.079-1.54.088v1.807a16.622 16.622 0 002.37-.473l-.471-.891s-.108-.183-.248-.394c-.039-.054-.08-.098-.111-.137z"></path></svg> [**R**](https://www.r-project.org/) è un linguaggio di programmazione fortemente votato alla statistica, gestione di dati e visualizzazione. E' nato nel 1993 da .imp[Ross Ihaka] e .imp[Robert Gentleman] come successore di un'altro linguaggio chiamato **S**. E' un software completamente **open-source** e **gratuito** in continua evoluzione e cambiamento. --- class: section, center, middle # Perchè R --- # Qualche statistica <img src="data:image/png;base64,#img/rank-pyply.png" width="50%" style="display: block; margin: auto;" /> .footnote[ [PYPL](https://pypl.github.io/PYPL.html) ] --- # Qualche statistica <img src="data:image/png;base64,#img/rank-tiobe.png" width="80%" style="display: block; margin: auto;" /> .footnote[ [TIOBE](https://www.tiobe.com/tiobe-index/) ] --- # CRAN <iframe src="https://cran.r-project.org/web/packages/#:~:text=Currently%2C%20the%20CRAN%20package%20repository%20features%2017951%20available%20packages." width="2100" height="400px" data-external="1"></iframe> --- # E se lo dice Google 😄 <img src="data:image/png;base64,#img/google_course.png" width="80%" style="display: block; margin: auto;" /> --- # Un cenno all'open-source Un software si definisce open-source quando il **codice sorgente è disponibile** a tutti per essere **modificato**, **aggiornato** e **controllato**. -- R è **sia open-source che gratuito** e vanta una community estremamente attiva, come spesso accade con tutti i progetti open-source e in generale i linguaggi di programmazione. -- <iframe src="https://giphy.com/embed/ajTYvLVDxbT1sbgMlI" width="300" height="300" frameBorder="0"></iframe --- # Quale è la concorrenza? Il principale "concorrente" di R è sicuramente **Python** che offre un ambiente altrettanto potente, sviluppato e attivo Non è facile (e forse non è possibile) capire quale sia il migliore. Sicuramente se produrre grafici, gestire dati e fare analisi statistiche è la priorità , R è la scelta più adeguata. Una volta imparato R, Python in ogni caso è molto semplicee può essere utile per altri scopi come: - Elaborazione immagini - Creare esperimenti (Psychopy) --- # Quale NON è la concorrenza? Nell'ambito della statistica ci sono vari software non open-source ed a pagamento come: .pull-left[ - Statistica - SPSS - STATA - SAS ] .pull-right[ <iframe src="https://giphy.com/embed/LBCnioHLnPwpqBjGhI" width="300" height="300" frameBorder="0"></iframe ] --- # Quale NON è la concorrenza? Sono degli ottimi software ma: - Non forniscono conoscenze trasversali - Siete legati ad uno specifico ambiente - Le licenze possono costare molto - La community non è altrettanto attiva (non open-source) --- # Quali sono delle alternative? Ci sono degli ottimo software open-source basati su R come: - [Jamovi](https://www.jamovi.org/) - **pros**: si può accedere al codice R sottostante - **cons**: le funzioni sono comunque limitate, grafici, modelli complessi - [Jasp](https://jasp-stats.org/) - **pros**: molti modelli anche avanzati - **cons**: non si può vedere il codice R In generale, sono buone opzioni MA credo sia sempre meglio imparare il linguaggio. --- # Imparare un linguaggio come investimento Imparare in linguaggio come R vi permette di conoscere uno strumento molto potente ma anche di imparare: - Ragionare e risolvere problemi con il codice - Trasferire quello che avete imparato ad altri linguaggi - Essere sempre autonomi e non legati ad uno specifico ambiente - Avere una skill realmente di valore --- # Imparare R è difficile...MA ne vale la pena! -- .pull-left[ <img src="data:image/png;base64,#1_intro_generale_files/figure-html/unnamed-chunk-7-1.png" width="2100" style="display: block; margin: auto;" /> ] -- .pull-right[ <img src="data:image/png;base64,#1_intro_generale_files/figure-html/unnamed-chunk-8-1.png" width="2100" style="display: block; margin: auto;" /> ] --- # R come una lingua parlata Una lingua è composta da: - regole grammaticali: **cosa è giusto/sbagliato** - influenze ed evoluzioni culturali: **la lingua cambia ed evolve** - slang ed espressioni tipiche - convenzioni e best practice --- # Let's start 😎 <iframe src="https://giphy.com/embed/lluj1cauAlO2vQEm8A" width="500" height="500" frameBorder="0"></iframe --- class: section, center, middle # Prepariamoci! --- # Prepariamoci! Andate su https://github.com/arca-dpss/course-R, e scaricate la repository. **Salvate anche nei preferiti** il link alla repository perchè la useremo spesso. <img src="data:image/png;base64,#img/download-repo.png" width="100%" style="display: block; margin: auto;" /> --- # Prepariamoci! Vi consiglio di lavorare sempre su questa cartella in modo che impariate a lavorare con i progetti R. <img src="data:image/png;base64,#img/open-r-project.png" width="100%" style="display: block; margin: auto;" /> --- # Prepariamoci! Aprite e tenete aperto questo link https://etherpad.wikimedia.org/p/arca-corsoR <img src="data:image/png;base64,#img/pad-condiviso.png" width="100%" style="display: block; margin: auto;" />