class: center, middle, inverse, title-slide # Primi passi con R ### Stefano Bussolon ### 01/2019 - 11/2019 --- ## Scaricare R R è un software free ed open source, che può essere liberamente scaricato dal sito [R: The R Project for Statistical Computing](https://www.r-project.org/), ad esempio utilizzando il mirror dell'università di Padova: [The Comprehensive R Archive Network](https://cran.stat.unipd.it/) R è disponibile per piattaforme Windows, Mac, Linux. R è un software a riga di comando. Questo significa che ogni istruzione viene comunicata ad R attraverso il prompt della riga di comando. --- ### RStudio Per rendere più semplice la vita, è opportuno utilizzare [RStudio](https://www.rstudio.com/products/RStudio/), un IDE (integrated development environment) che rende più pratico scrivere codice in R. Anche RStudio può essere installato su Windows, Mac, Linux. --- ## Usare R come una calcolatrice Per iniziare a prendere confidenza con la riga di comando di R, è possibile cominciare a giocarci, provando le funzioni più elementari. La riga di comando, ad esempio, può essere utilizzata per calcolare alcune semplici operazioni. ### Operazioni aritmetiche di base Addizione, sottrazione, moltiplicazione, divisione, elevazione a potenza --- ```r # addizione 7+4 ``` ``` ## [1] 11 ``` ```r # sottrazione 13-5 ``` ``` ## [1] 8 ``` ```r # moltiplicazione 7*7 ``` ``` ## [1] 49 ``` ```r # divisione 23/3 ``` ``` ## [1] 7.666667 ``` --- ```r # divisione intera 23 %/% 3 ``` ``` ## [1] 7 ``` ```r # modulo (il resto della divisione) 23 %% 3 ``` ``` ## [1] 2 ``` ```r # elevazione a potenza 2^3 ``` ``` ## [1] 8 ``` ```r 3^2 + (7-2)*3 ``` ``` ## [1] 24 ``` --- ## Assegnazione di variabili La creazione di una variabile avviene attraverso la sintassi `<-`. In R non è necessario definire il tipo di variabile. Attraverso l'assegnazione, sarà R a creare un tipo opportuno di variabile (o di oggetto). --- ```r numero1 <- 5 etichetta1 <- "Antonio" # le parentesi servono a stampare il risultato a video (numero2 <- 5.12) ``` ``` ## [1] 5.12 ``` ```r numero3 <- 10/3 # invocando la variabile ne stampo il valore numero3 ``` ``` ## [1] 3.333333 ``` ```r # se alla stessa variabile assegno un nuovo valore # perdo il valore precedente numero3 <- 10*2 numero3 ``` ``` ## [1] 20 ``` --- ```r # operazioni usando le variabili numero2 * numero3 ``` ``` ## [1] 102.4 ``` ```r # assign (variabile, valore) equivale a variabile <- valore assign("numero4", 7) numero4 ``` ``` ## [1] 7 ``` --- `<-` è l'operatore di assegnamento, ed equivale alla funzione `assign`. Pertanto `numero <- 5` è una scorciatoia della funzione `assign("numero", 5)`. La funzione `ls()` mi permette di elencare tutte le variabili (oggetti) attualmente attivi nel framework. ```r ls() ``` ``` ## [1] "etichetta1" "numero1" "numero2" "numero3" "numero4" ``` La funzione `rm()` rimuove un oggetto. Ad esempio, con il comando `rm(variabile1)` l'oggetto variabile1 sarà cancellato, e non più disponibile. --- ### Operazioni booleane Le operazioni booleane sono finalizzate a confrontare due elementi. L'output di queste operazioni è di tipo booleano. Attenzione: per valutare l'uguaglianza fra due elementi si usa == --- ```r quattro <- 4; cinque <- 5 quattro == 4# la variabile quattro è uguale a 4? ``` ``` ## [1] TRUE ``` ```r cinque == 4 ``` ``` ## [1] FALSE ``` ```r quattro < cinque # quattro è minore di cinque? ``` ``` ## [1] TRUE ``` ```r quattro <= 4 # quattro è minore o uguale a 4? ``` ``` ## [1] TRUE ``` ```r quattro < 4 # quattro è minore di 4? ``` ``` ## [1] FALSE ``` ```r quattro != cinque # quattro è diverso da cinque? ``` ``` ## [1] TRUE ``` --- ```r giusto = TRUE sbagliato = FALSE giusto | sbagliato # TRUE or FALSE = TRUE ``` ``` ## [1] TRUE ``` ```r giusto & sbagliato # TRUE and FALSE = FALSE ``` ``` ## [1] FALSE ``` ```r (5>4) | (4>5) # vero o falso = vero ``` ``` ## [1] TRUE ``` ```r (5>4)&(4>5) # vero e falso = falso ``` ``` ## [1] FALSE ``` ```r (6<7)&(7<8) ``` ``` ## [1] TRUE ``` --- ```r # ! significa not. !TRUE ``` ``` ## [1] FALSE ``` ```r !FALSE ``` ``` ## [1] TRUE ``` ```r !sbagliato ``` ``` ## [1] TRUE ``` ```r sbagliato & (quattro==4) ``` ``` ## [1] FALSE ``` --- ## Guide di stile Nello scrivere del codice, è opportuno seguire delle guide di stile. Questo garantisce una maggiore consistenza e codice più elegante. Uno degli aspetti più importanti e meno banali è dare dei nomi appropriati alle variabili. Appropriati significa comprensibili ma non troppo lunghi. Per separare le parole in un nome composto, Hadley Wickham suggerisce di usare l'underscore `_`. Ad esempio `nome_variabile`. Personalmente, però, non disdegno di utilizzare a volte il camelCase: `nomeVariabile` (peraltro suggerito nelle linee guida di Google). Per approfondire, si consigliano queste risorse: * [The tidyverse style guide](https://style.tidyverse.org/index.html) * [Google's R Style Guide](https://google.github.io/styleguide/Rguide.xml) --- ## Help Strumenti come gli [cheatsheets](https://www.rstudio.com/resources/cheatsheets/) di RStudio sono estremamente utili per avere un riferimento veloce di una serie di argomenti. È opportuno imparare ad usare gli aiuti che l'ambiente R ci offre. * help(nome) help sulla funzione `nome' * ?nome equivale a help(nome) * apropos("nome") elenca le funzioni che contengono ``nome'' * example(funzione) mostra degli esempi dell'uso della funzione * RSiteSearch("kmeans") cerca informazioni relative alla funzione ``kmeans'' su internet.