Tipi di dato in R

Ci sono un’ampia varietà di Tipi di dato in R tra cui scalari, vettori (numerici, caratteri, logici), matrici, dataframe e liste.

Vettori

> a <- c(1,2,3.3,5,-2,4) # vettore numerico in R
> b <- c("one","two","three") # vettore di Stringhe in R
> c <- c(TRUE,TRUE,TRUE,FALSE,TRUE,FALSE) #vettore logico in R

Usando gli indici per accedere ai valori avremo

> a[c(2,4)]
[1] 2 5 #Accede al 2° e al 4° elemento

Matrici e Arrays

Tutte le colonne di una matrice devono avere la stessa tipologia (numerico, carattere, ecc.) e la stessa lunghezza.
Per definire una matrice:

mymatrix <- matrix(vector, nrow=r, ncol=c, byrow=FALSE,
dimnames=list(char_vector_rownames, char_vector_colnames))

vector vettore numerico di dimensione r X c
nrow numero r di righe
ncol numero c di colonne
byrow = TRUE / FALSE elementi disposti per riga oppure per colonna
dimnames etichette di riga e di colonna

> y<-matrix(1:20, nrow=5,ncol=4)
> y
[,1] [,2] [,3] [,4]
[1,] 1 6 11 16
[2,] 2 7 12 17
[3,] 3 8 13 18
[4,] 4 9 14 19
[5,] 5 10 15 20

> # un altro esempio
> cells <- c(13,26,52,104)
> rnames <- c("R_1", "R_2")
> cnames <- c("C_1", "C_2")
> mymatrix <- matrix(cells, nrow=2, ncol=2, byrow=TRUE,
+ dimnames=list(rnames, cnames))
> mymatrix
C_1 C_2
R_1 13 26
R_2 52 104

Per accedere ai singoli valori

> y[,4] # 3° colonna della matrice
[1] 16 17 18 19 20
> y[3,] # 3° riga della matrice
[1] 3 8 13 18
> y[2:4,1:3] # righe 2,3,4 delle colonne 1,2,3
[,1] [,2] [,3]
[1,] 2 7 12
[2,] 3 8 13
[3,] 4 9 14

Gli array sono simili alle matrici ma possono avere più di due dimensioni. Per ulteriori informazioni digita help(array).

Dataframes

Un dataframe è una lista di vettori, dove tutti hanno la stessa lunghezza,ma possono essere di tipo diverso (numerici, character, factor, etc.).

> a <- c(1,2,3,4)
> b <- c("white", "white", "red", NA)
> c <- c(TRUE,TRUE,FALSE,FALSE)
> mydata <- data.frame(a,b,c)
> names(mydata) <- c("ID","Colore","White")
> mydata
ID Colore White
1 1 white TRUE
2 2 white TRUE
3 3 red FALSE
4 4 FALSE

Per accedere agli elementi di un dataframe

> mydata[1:2] # colonne 3,4,5 del dataframe
ID Colore
1 1 white
2 2 white
3 3 red
4 4
> mydata[c("ID","Colore")] # colonne ID e Colore Age del dataframe
ID Colore
1 1 white
2 2 white
3 3 red
4 4
> mydata$ID # colonna ID del dataframe
[1] 1 2 3 4

Liste

Un insieme ordinato di oggetti. Una lista elenco consente di raggruppare una varietà di oggetti (possibilmente non correlati) sotto un unico nome.

> # esempio di lista con 4 componenti
> w <- list(name="RocketToRide", mynumbers=13, articolo=13)
> w
$name
[1] "RocketToRide"

$mynumbers
[1] 13

$articolo
[1] 13

> # esempio di lista che contiene due liste
> v <- c(list1,list2)

Per accedere agli elementi di una lista

list[[2]] # 2° componente della lista
list [["mynumbers "]] # componente mynumbers della lista

Factors

Factors è un tipo di dato che permette di etichettare un gruppo di osservazioni utilizzando delle categorie predefinite, memorizza i valori nominali come vettore di numeri interi nell’intervallo [1 … k] (dove k è il numero di valori univoci nella variabile nominale).
Esempio

> # variable genere with 20 "male" e
> # 30 " female "
> gender <- c(rep("male",20), rep("female ", 30))
> gender <- factor(gender)
> # memorizza genere come 20 1s e 30 2s
> # 1=female, 2=male
> # R now treats gender as a nominal variable
> summary(gender)
female male
30 20

Funzioni utili per tutti I tipi di dato in R

Quache funzione utile per ogni tipo di dato

length(object) # numero di elementi o componenti
str(object) # struttura di un oggetto
class(object) # classe o tipo di oggetto
names(object) # etichette

object # stampa l’oggetto

ls() # lista gli oggetti del workspace
rm(object) # cancella un ogetto dal workspace

newobject <- edit(object) # modifica copia e salva come nuovo oggetto

Guarda tutti i tutorial di Data input oppure torna su R tutorial.

Immagine di storyset su Freepik

Lascia una risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Iscriviti alla nostra newsletter

Tieniti aggiornato sulle ultime novità riguardo la XAI e il Deep Learning.