Tutorial su R: una rapida guida per principianti all’utilizzo di R

Articolo in lingua originale di The Educative Team pubblicato su Dev Learning Daily

Il linguaggio di programmazione R è incredibilmente utilizzato. Con i 10.000 pacchetti che offre e la sua crescente importanza nei campi più popolari, non c’è dubbio che R stia aumentando la sua popolarità. Con la crescita di campi come la data science e il machine learning, anche l’uso di R sta crescendo di conseguenza.

Bene, quindi perchè usare R? Che cosa è poi il linguaggio di programmazione R? Oggi vi forniremo una guida introduttiva al linguaggio di programmazione R, in modo che possiate iniziare a utilizzare questo linguaggio popolare e versatile.

Breve storia di R

Il linguaggio di programmazione R è un’implementazione del linguaggio di programmazione S, creato da John Chambers presso i Bell Labs.

R è stato creato da Robert Gentleman e Ross Ihaka presso l’Università di Auckland, in Nuova Zelanda. Per creare R, il team ha combinato S con la semantica dello scoping lessicale. Il progetto R è stato inizialmente concepito nel 1992 per poi essere rilasciato per la prima volta nel 1995. Il 29 febbraio 2000 è stata rilasciata una versione beta stabile.

Panoramica di R

R è un linguaggio di programmazione e un ambiente utilizzato per calcoli statistici e la realizzazione di grafici. R offre una grande varietà di tecniche statistiche e grafiche (modellazione lineare e non, test statistici classici, clustering, analisi delle serie temporali, classificazione ecc.). È inoltre altamente estensibile.

In precedenza, il linguaggio S era la scelta più diffusa per la ricerca in metodologia statistica. Quando R è stato rilasciato, ha rappresentato la via open-source per partecipare a questa attività e da allora ha aumentato la sua popolarità.

Ambiente

R è un insieme di pacchetti e ambienti utilizzati per la manipolazione di dati, il calcolo ed i grafici. Alcune delle caratteristiche che offre sono:

  • Una potente struttura per la gestione e l’archiviazione dei dati
  • Un insieme di operatori che possono essere utilizzati per calcoli su array ed in particolare su matrici
  •  Un’ampia e integrata raccolta di strumenti utilizzati per l’analisi dei dati
  • Strumenti grafici per l’analisi dei dati e per la visualizzazione su shermo o su carta
  • Un linguaggio di programmazione robusto, completo e semplice che include condizionali, loop, funzioni ricorsive definite dall’utente e funzioni di input/output.

Il termine “ambiente” è usato intenzionalmente per descrivere R come sistema piuttosto che come semplice linguaggio di programmazione. R viene spesso utilizzato insieme ad altri strumenti di analisi dei dati.

Perchè dovresti usare R?

  • Open-source e gratuito: R è scaricabile gratuitamente in quanto concesso in licenza secondo i termini della GNU General Public License. Se volete veramente cosa vi sta dietro, potete guardare il codice sorgente. Inoltre, sotto la stessa licenza, avete anche accesso (e quindi potete usare) ad una marea di pacchetti R. E’  possibile utilizzarlo anche in ambito commerciale.
  • Popolarità: R è popolare quanto i linguaggi generici come C#, il che indica specificamente il crescente interesse per il linguaggio di programmazione R, nonché la crescita generale di campi come la data science ed il machine learning.
  •  Funziona su tutte le piattaforme: è possibile trovare distribuzioni di R su tutte le piattaforme più comuni: Windows, Linux e Mac. Inoltre, il codice R scritto su una piattaforma può essere facilmente tradotto su un’altra piattaforma senza grandi problemi. L’interoperabilità multipiattaforma di R è incredibilmente importante nel mondo informatico di oggi, come dimostra il tentativo di Microsoft di rendere la sua piattaforma .NET disponibile su tutte le piattaforme.
  •  Mercato del lavoro: I data scientist negli Stati Uniti sono pagati in media più di 100.000 dollari. Per molti ruoli di data scientist è necessario conoscere il linguaggio di programmazione R. Anche se la conoscenza di R non vi farà ottenere automaticamente un posto di lavoro, dato che gli scienziati dei dati devono utilizzare tutti i tipi di strumenti per il loro lavoro, l’esperienza nella programmazione R vi aiuterà a distinguervi dagli altri candidati.
  • Adozione da parte dei giganti tecnologici: Se i giganti tecnologici adottano un linguaggio di programmazione, è un segno del suo potenziale e della sua crescita. Grazie alla semplicità e alla potenza di R, le aziende decidono di utilizzare il linguaggio di programmazione e l’ambiente R. Ad esempio, Twitter utilizza R per monitorare l’esperienza degli utenti, Ford per analizzare i social media e il New York Times per le infografiche

R è difficile da imparare?

R non è più difficile di qualsiasi altro linguaggio, soprattutto se si ha già una qualche esperienza con linguaggi più vecchi come C o C++.

Molti anni fa, molti avrebbero detto che R era un linguaggio difficile da imparare. Non solo era confuso, ma non era nemmeno ben strutturato. Per risolvere questi problemi, Hadley Wickham ha creato una raccolta di pacchetti chiamata tidyverse, che ha reso la manipolazione dei dati più intuitiva.

Ora i migliori algoritmi di machine learning possono essere facilmente implementati con R. Da pacchetti come Keras a Tensorflow e XGboost, utilizzando il linguaggio R si hanno funzionalità piuttosto potenti.

Oltre a questo, R si è evoluto in modo da permettere la parallelizzazione delle operazioni per accelerare i calcoli. Il pacchetto consente di eseguire operazioni simultanee anziché una sola per volta.

 

Il mondo reale utilizza R

Quindi quali sono i maggiori utilizzi di R nel campo dell’ingegneria informatica?

R è utilizzato per

  • Inferenza statistica
  • Analisi dati
  • Machine Learning
  • Esecuzione di simulazioni scientifiche
  • Operazioni di ricerca

Calcolo statistico

Il linguaggio di programmazione R è stato inizialmente costruito da statistici per statistici. R è di gran lunga il linguaggio di programmazione più utilizzato dagli statistici. La sintassi di R consente ai ricercatori di importare, pulire e analizzare facilmente i dati da un’ampia varietà di fonti. Inoltre, R offre ampie e potenti funzionalità per la creazione di grafici, il che significa che è possibile plottare dati e creare visualizzazioni.

Machine Learning

R è comunemente utilizzato nell’analisi predittiva e nel ML. Alcuni pacchetti utili offerti dall’ecosistema di R sono regressione lineare e non-lineare, decision trees, classificazione lineare e non-lineare e molti altri. R è in grado di implementare algoritmi di ML in campi come la vendita al dettaglio, il marketing, la finanza ed altri ancora.

Esempi dal mondo reale

In tre semplici linee di codice potete essere in grado di generare 10.000 numeri distribuiti casualmente. Questo è il potere di R. Se lo scriviamo in codice:

n <- floor(rnorm(10000, 500, 100))
t <- table(n)
barplot(t)

In basso a destra sarete in grado di vedere questo grafico:

→ La prima riga del codice genera un elenco di 10.000 numeri casuali distribuiti normalmente con media 500 e deviazione standard 100. La funzione floor prende tutti i numeri dell’elenco e rimuove il punto decimale.

→ Nella seconda riga di codice, la funzione table prende i 10.000 numeri e conta l’occorrenza di ciascuno di essi.

→   Nella terza riga di codice, la funzione barplot prende la tabella delle frequenze ne crea il grafico a barre

 

Strumenti, pacchetti e sintassi di R

Ora che ne sappiamo di più riguardo a R e ai suoi utilizzi, procediamo con la sintassi di R. Questo è il modo in cui effettivamente scriviamo il codice in R in modo che il nostro computer risponda di conseguenza. Dovremo anche imparare a conoscere gli strumenti e i pacchetti necessari per la scrittura in R. Procediamo!

Per meglio comprendere questa sezione, potrebbe essere utile avere una conoscenza base dei termini utilizzati normalmente in programmazione. Se siete alle prime armi,  prima di continuare vi consiglio di leggere “The absolute beginner’s guide to coding”.

Area di lavoro

Il workspace è l’ambiente di lavoro R attuale, include oggetti progettati per l’utente come matrici, vettori, dataframe, liste e funzioni. Al termine della sessione, è possibile salvare un’immagine dell’area di lavoro corrente (workspace), che verrà caricata automaticamente al nuovo avvio di R.

GUI (Graphic User Interface)

Oltre alla console built-in di R, Rstudio è l’editor più popolare che permette di interfacciare R con le piattaforme Windows, MacOS e Linux.

Operatori

Gli operatori di R sono simili a quelli degli altri linguaggi. Alcuni operatori aritmetici sono:

  • + addizione
  • – sottrazione
  • * moltiplicazione
  • / divisione
  • ^ elevamento a potenza

Gli operatori logici includono, invece:

  • > maggiore a
  • >= maggiore o uguale a
  • == uguale a
  • != diverso da

Tipi di dati

R ha 5 tipi di dati principali. Nel linguaggio R, cambiando l’informazione contenuta in una variabile, ciò che era contenuto precedentemente viene cancellato. Perciò ciascun tipo di dato richiede un nome univoco.

Creazione di variabili

Le variabili sono utilizzate per memorizzare i dati. Il loro valore può essere modificato, utilizzato e manipolato a seconda delle necessità. Un nome univoco dato a una variabile (o a una funzione o a un oggetto) è chiamato identificatore.

Nota: In R, gli identificatori possono avere una combinazione di lettere, cifre, un punto . e un trattino basso _. Tuttavia, devono iniziare necessariamente con una lettera o un punto. Se iniziano con un punto, non possono essere seguiti da una cifra.

# An example of computing the mean with variables
mydata$sum <- mydata$x1 + mydata$x2
mydata$mean <- (mydata$x1 + mydata$x2)/2

Metodi in R

I metodi sono come operazioni integrate che possiamo applicare al nostro codice. Analizziamo due metodi popolari per familiarizzare con il loro funzionamento in R.

• Elencare le variabili

Possiamo controllare tutte le variabili che sono state create nell’area di lavoro usando la parola chiave ls():

myRealNumeric <- 10
myDecimalNumeric <- 10.0
myCharacter <- "10"
myBoolean <- TRUE
myInteger <- 0:10
myComplex <- 5i

cat("Variables in the current directory: \n")
ls() # returns all the variables created in the workspace alphabetically
cat("\n")

//output
Variables in the current directory:
[1] "myBoolean"        "myCharacter"      "myComplex"        "myDecimalNumeric"
[5] "myInteger"        "myRealNumeric"    "r"

• Eliminare variabili

Possiamo eliminare una specifica variabile dall’area di lavoro. La parola chiave rm() può aiutarci a rimuovere definitivamente uno o più oggetti dall’area di lavoro.

myRealNumeric <- 10
myDecimalNumeric <- 10.0
myCharacter <- "10"
myBoolean <- TRUE
myInteger <- 0:10
myComplex <- 5
cat("Variables in the current directory: \n")
ls() # returns all the variables created in the workspace
cat("\n")
cat("Deleting myRealNumeric and myDecimalNumeric \n\n")
rm(myRealNumeric, myDecimalNumeric) # delete the two mentioned variables
cat("Variables in the current directory, now: \n")

ls() # returns all the variables created in the workspace

    # myRealNumeric, myDecimalNumeric are now deleted

cat("\n")


//output

Variables in the current directory:

[1] "myBoolean"        "myCharacter"      "myComplex"        "myDecimalNumeric"

[5] "myInteger"        "myRealNumeric"    "r"  


Deleting myRealNumeric and myDecimalNumeric
Variables in the current directory, now:

[1] "myBoolean"   "myCharacter" "myComplex"   "myInteger"   "r"

• Funzioni

Essenzialmente tutto in R viene fatto attraverso le funzioni. Una funzione è un blocco di codice scritto per un compito specifico o una serie di compiti. Può accettare parametri e può restituire un valore, se definito. Una funzione in R è definita di seguito. Il codice tra le parentesi graffe è il corpo della funzione.

function ( arglist ) {body}

• Stringhe: print() e cat()

In R, possiamo esprimere stringhe di caratteri circondando il testo con doppi apici o apici singoli. Per scrivere stringhe, si usa la sintassi cat(). Possiamo anche trovare la lunghezza di una stringa con il metodo nchar().

cat("Hello world\n")

nchar("Hello World")

//output

Hello world

[1] 11

Noterete che la nostra stringa termina con /n. Una sequenza che inizia con una \ in una stringa è chiamata sequenza di escape. Ci permette di includere caratteri speciali nelle nostre stringhe. Le sequenze di escape più comuni sono:

Possiamo anche usare il metodo print(), che potrebbe sembrarvi familiare se lavorate con altri linguaggi. C’è una leggera differenza tra i due metodi:

print() restituisce un vettore di caratteri. Un vettore è un oggetto nel linguaggio R. cat() restituisce un oggetto NULL. Se volete saperne di più, dovreste approfondire il tema dei tipi atomici in R.

A livello più elementare, cat() stampa i suoi argomenti senza virgolette, mentre print() li visualizza.

• Vettori

Un vettore è una struttura dati di base in R. Ad ogni indice contiene tutti elementi dello stesso tipo. La parola chiave vector() viene utilizzata per creare un vettore di un certo tipo e con lunghezza fissa.I tipi di dati possono essere:

  • Logico
  • Intero
  • Numero
  • Carattere
  • Complesso

Il tipo di un vettore può essere controllato con typeof() e il numero di elementi del vettore può essere controllato con length().

vector ("numeric", 5) # numeric vector with O at every index
vector ("complex", 5) # complex vector with O+0i at every index
vector ("logical", 5) # logical vector with FALSE at every index
vector ("character", 5) # character vector with "" at every index

//output
[1] 0 0 0 0 0
[1] 0+0i 0+0i 0+0i 0+0i 0+0i
[1] FALSE FALSE FALSE FALSE FALSE
[1] "" "" "" "" ""

• Importare dati

Importare dati in R è relativamente semplice poiché R permette diverse opzioni di import, inclusa la possibilità di importare CSV. Questa è una caratteristica importante nel caso della data science

Qua sotto è riportato un esempio di importazione di un file CSV in un progetto R.

# first row contains variable names, comma is separator
# assign the variable id to row names
# note the / instead of \ on mswindows systems
mydata <- read.table("c:/mydata.csv", header=TRUE,
  sep=",", row.names="id")

•Plottare in R

I grafici in R vengono creati interattivamente:

# Creating a Graph
attach(mtcars)
plot(wt, mpg)
abline(lm(mpg~wt))
title("Regression of MPG on Weight")

La funzione plot() permette di aprire una finestra in cui viene rappresentato il grafico del peso rispetto alle miglia per gallone. La riga successiva aggiunge una linea di regressione al grafico. Infine, l’ultima riga aggiunge un titolo.

• Pacchetti

I pacchetti sono comunemente utilizzati nel linguaggio di programmazione R, che ne contiene migliaia.  I pacchetti contengono una raccolta di funzioni R, dati e codice compilato in una forma definita. R viene fornito con una serie di pacchetti standard e altri, invece, disponibili per il download. È possibile caricare i pacchetti in sessione, come mostrato di seguito

.libPaths() # get library location
library()   # see all packages installed
search()    # see packages currently loaded

•Cercare aiuto

Installando R avrete accesso anche ad un’interfaccia integrata di aiuto. Potete usare uno qualsiasi dei codici seguenti:

help.start()   # general help
help(foo)      # help about function foo
?foo           # same thing
apropos("foo") # list all functions containing string foo
example(foo)   # show an example of function foo




 

Creare il primo progetto in R: Hello World

Ora che conosciamo la sinassi base di R e gli strumenti, dobbiamo utilizzarli. Passiamo all’uso pratico di R e impariamo a creare un’applicazione con questo linguaggio.

Scaricare R

Su mac

  • Andare sul sito di R
  • cliccare sul link CRAN
  • Selezionare un mirror
  • Ciccare su “Download R for (Mac) OS X”
  • Scaricare l’ultimo pkg binary
  • Eseguire il file e i passi successivi mentre installate R

Su Windows

  • Andare sul sito di R
  • cliccare sul link CRAN
  • Selezionare un mirror
  • Ciccare su “Download R for Windows”
  • Cliccare sul link che scarica la distribuzione base
  • Eseguire il file e i passi successivi mentre installate R

Installare Rstudio

Come detto prima, RStudio è l’IDE più utilizzata per eseguire programmi in R. Potete scaricarla qui per Windows, Linux e Mac OS.

La vostra prima applicazione

R è noto per essere in grado di creare applicazioni con poche righe di codice. Proviamo due progetti, iniziando con Hello World. Provate voi stessi prima di verificare la soluzione. Ricordate: potete usare cat o print().

soluzione:

cat("Hello world\n")
#or
print("Hello World")

Come potete vedere, R è piuttosto semplice! Infatti, proviamo un altro programma.

In questo programma, vogliamo utilizzare due istruzioni cat() separate per visualizzare il testo sullo schermo, una per il livello alto e una per il livello basso.

  • Il nostro input è una testVariable contenente la variabile da testare.
  • L’output è costituito dai tipi di dati di alto e basso livello di tale variabile.
#input
1.9

# output
numeric
double

Procediamo passo dopo passo. Per prima cosa, dobbiamo definire la nostra variabile.

testVariable <- 1.9

Ora per trovare il tipo di dati ad alto livello di testVariable utilizziamo la parola chiave class().  La passiamo al metodo cat() stamparla e aggiungiamo anche \n per una nuova riga.

cat(class(testVariable), "\n")
# high level data type

Una classe è come un progetto che aiuta a creare un oggetto e contiene le sue variabili membro insieme agli attributi.

Ora, dobbiamo stampare il tipo di dati di basso livello di testVariable e per questo usiamo typeof() con testVariable.

cat(typeof(testVariable), "\n")
# low level of variable

Uniamo tutto insieme ed eseguiamo il codice!

testVariable <- 1.9
cat(class(testVariable), "\n") #  high level data type
cat(typeof(testVariable), "\n") # low level of variable

 

 

Cosa imparare poi

Congratulazioni! Avete imparato le basi di R e scritto due programmi! Ora siete pronti per iniziare a imparare concetti più complessi. I prossimi passi per padroneggiare R sono i seguenti:

  • Elenchi e array
  • Matrici e dataframe
  • Operatori e notazione
  • Dichiarazioni condizionali
  • Gestione delle eccezioni

Per iniziare a imparare questi argomenti avanzati, Educative ha creato un corso gratuito, Learn R from Scratch. Utilizzerete attività pratiche ed esempi reali per padroneggiare R da zero. Alla fine, sarete sulla buona strada per diventare un data scientist!

 

Buon apprendimento!

Share:

Contenuti
Torna in alto