Come in ogni altro lin­guag­gio di pro­gram­ma­zio­ne, anche nella pro­gram­ma­zio­ne in R sono presenti diversi tipi di dati grazie ai quali i pro­gram­ma­to­ri e le pro­gram­ma­tri­ci possono strut­tu­ra­re meglio il loro codice. Oltre ai tipi di dati di base, in R esistono anche tipi di dati più complessi.

A cosa servono i tipi di dati in R?

Spesso, quando si programma, è ne­ces­sa­rio elaborare i dati. Per poter me­mo­riz­za­re questi dati in modo sensato, gli svi­lup­pa­to­ri e le svi­lup­pa­tri­ci possono scegliere fra diversi tipi di dati nella maggior parte dei linguaggi di pro­gram­ma­zio­ne. Alcuni esempi di tipi di dati sono i numeri e le catene di caratteri.

Di norma, per tipi di dati diversi sono definiti degli operatori R dif­fe­ren­ti. Pertanto, i tipi di dati aiutano i pro­gram­ma­to­ri e le pro­gram­ma­tri­ci anche a elaborare i dati in forma adeguata e quindi ad aumentare l’ef­fi­cien­za dei programmi.

I diversi tipi di dati in R

In R esistono vari tipi di dati. Alcuni di questi do­vreb­be­ro esserti già noti da altri linguaggi di pro­gram­ma­zio­ne, a meno che tu non abbia appena iniziato a imparare a pro­gram­ma­re. Per eseguire un controllo del tipo di dati in R, puoi uti­liz­za­re il comando R class(), che accetta una variabile a piacere come parametro di passaggio e re­sti­tui­sce il tipo di dati di tale variabile come risultato.

Tipi di dati numerici

I tipi di dati numerici fanno parte dei tipi di dati di base in R e servono a rap­pre­sen­ta­re valori numerici. Si di­stin­guo­no fra numeric per i numeri reali, integer per i numeri interi e complex per i numeri complessi con parte im­ma­gi­na­ria.

x <- 3.14
y <- 42
z <- 3 + 2i
print(class(x))
print(class(y))
print(class(z))
R

Il risultato di questo codice si presenta così:

"numeric"
"numeric"
"complex"

A questo punto potresti chiederti come mai il tipo di dati numeric sia riportato due volte, no­no­stan­te la variabile y sia un integer o numero intero. La spie­ga­zio­ne è semplice: gli interi in R sono sempre anche numeric. Per co­mu­ni­ca­re all’in­ter­pre­te che si tratta ef­fet­ti­va­men­te di un intero, devi ag­giun­ge­re il suffissoL ai numeri interi che utilizzi:

y <- 42L
print(class (y))
R

A questo punto, ri­chia­man­do la funzione come sopra indicato si ottiene il risultato previsto:

"integer"

Catene di caratteri

Per rap­pre­sen­ta­re un testo o un carattere puoi ricorrere al tipo di dati character. I dati di questo tipo, detti stringhe in R, possono essere con­tras­se­gna­ti in R con vir­go­let­te semplici o doppie:

x <- "Ciao mondo!"
y <- 'Hello world!'
print(class(x))
print(class(y))
R

Anche in questo caso puoi usare la funzione class() per vi­sua­liz­za­re il tipo di dati delle variabili uti­liz­za­te:

"character"
"character"

Tipi di dati logici

Le variabili con tipo di dati logico, che in R vanno sotto la de­no­mi­na­zio­ne logical, sono valutate dall’in­ter­pre­te come TRUE o FALSE. In questo modo è possibile for­ma­liz­za­re con­di­zio­ni o espres­sio­ni logiche. Spesso è ne­ces­sa­rio farlo per gestire il flusso di controllo del programma.

x <- TRUE
y <- FALSE
print(class(x))
print(class(y))
R

Os­ser­van­do il tipo di dati delle due variabili noterai che è stato loro assegnato il tipo di dati logical:

"logical"
"logical"

Dati grezzi

Il lin­guag­gio di pro­gram­ma­zio­ne R dispone di un apposito tipo di dati per mostrare le variabili come sequenza di byte. Questo tipo di dati in R si chiama raw. Per con­ver­ti­re i tuoi dati in dati grezzi, utilizza la funzione charToRaw(). Per il processo inverso è di­spo­ni­bi­le la funzione rawToChar().

Il codice seguente mostra come con­ver­ti­re una stringa in una sequenza di byte con il tipo di dati raw:

x <- "Ciao mondo!"
y <- charToRaw(x)
print(y)
print(class(y))
R

Il codice pre­ce­den­te dà come risultato in­nan­zi­tut­to la sequenza di byte sotto forma di numeri esa­de­ci­ma­li. A seguire, la chiamata della funzione class() permette di vi­sua­liz­za­re il tipo di dati della variabile y:

43 69 61 6f 20 6d 6f 6e 64 6f 21
"raw"
N.B.

In R è anche possibile con­ver­ti­re i dati in un altro tipo di dati. Spesso questa modifica è par­ti­co­lar­men­te facile in R: nel caso di una stringa composta da un numero (ad esempio “42”) è possibile con­ver­tir­la nel tipo di dati numeric per mezzo di una semplice addizione con 0.

Strutture dati in R

Oltre ai tipi di dati di base, in R sono di­spo­ni­bi­li varie strutture dati diverse, grazie alle quali i pro­gram­ma­to­ri e le pro­gram­ma­tri­ci possono strut­tu­ra­re meglio i loro dati. Queste strutture dati, come i data frame R, sono più complesse dei semplici tipi di dati e sono spesso mul­ti­di­men­sio­na­li.

Consiglio

Ti pia­ce­reb­be imparare a pro­gram­ma­re in R? Allora pubblica sul web il tuo nuovo progetto in R con uno spazio web com­pren­si­vo di hosting adat­ta­bi­le alle tue esigenze.

Vai al menu prin­ci­pa­le