R - I dataframe
R
I dataframe
Creazione di dataframe
- Un dataframe è un elenco di oggetti dove ogni oggetto è costituito da più tipi di dati.
- La creazione di dataframe avviene con la funzione data.frame().
- Le variabili di tipo stringa, sono convertite di default come fattori. Per far sì che queste variabili siano di tipo carattere, utilizzare il parametro stringsAsFactors = FALSE.
# Creazione di dataframe a partire da tre vettori. Il dataframe ha 4 oggetti con 3 variabili.
nome <- c("Adele", "Berto", "Carla", "Dario")
età <- c(20, 30, 40, 50)
genere <- c("F", "M", "F", "M")
df <- data.frame(nome, età, genere)
print(df)
nome età genere
1 Adele 20 F
2 Berto 30 M
3 Carla 40 F
4 Dario 50 M
- È possibile aggiungere variabili 'al volo' in un dataframe. Esempio:
# Aggiunta della variabile 'peso'.
df$peso <- c(60, 70, 65, 80)
print(df)
nome età genere peso
1 Adele 20 F 60
2 Berto 30 M 70
3 Carla 40 F 65
4 Dario 50 M 80
- È possibile anche creare un dataframe con un sottoinsieme di colonne. A queste colonne si può assegnare un alias. Esempio:
# Creazione di un dataframe con solo le colonne richieste.
df1 <- data.frame(età1 = df$età, genere1 = df$genere)
print(df1)
età1 genere1
1 20 F
2 30 M
3 40 F
4 50 M
- Per aggiungere record ad un dataframe, utilizzare la funzione rbind(). Esempio.
# Dataframe originale.
print(df)
nome età genere peso
1 Adele 20 F 60
2 Berto 30 M 70
3 Carla 40 F 65
4 Dario 50 M 80
# Nuova riga da aggiungere.
newRecord <- data.frame(nome = 'Elio', età = 60, genere = 'M', peso = 75)
# Aggiunta del record.
df <- rbind(df, newRecord)
# Dataframe modificato.
print(df)
nome età genere peso
1 Adele 20 F 60
2 Berto 30 M 70
3 Carla 40 F 65
4 Dario 50 M 80
5 Elio 60 M 75
Selezione di elementi da un dataframe
- Per selezionare una colonna da un dataframe utilizzare l'operatore '$'.
# Selezione della colonna 'genere'.
print(df$genere)
[1] F M F M
Levels: F M
# Selezione della colonna 'genere' con filtraggio.
print(df$genere=="F")
[1] TRUE FALSE TRUE FALSE
# Selezione di un dato.
print(df[2, 4])
[1] 70
# Selezione di una riga.
print(df[2,])
nome età genere peso
2 Berto 30 M 70
# Selezione di una colonna.
print(df[,2])
[1] 20 30 40 50
Operazioni su un dataframe
- Dato un dataframe è possibile trasporlo con la funzione t().
# Crea il dataframe.
nome <- c("Adele", "Berto", "Carla", "Dario")
età <- c(20, 30, 40, 50)
df <- data.frame(nome, età)
# Visualizza il dataframe.
print(df)
nome età
1 Adele 20
2 Berto 30
3 Carla 40
4 Dario 50
# Visualizza il dataframe trasporto.
print(t(df))
[,1] [,2] [,3] [,4]
nome "Adele" "Berto" "Carla" "Dario"
età "20" "30" "40" "50"
Operazioni su due dataframe
- Dati due dataframe con almeno una colonna in comune è possibile farne il merge con l'omonima funzione merge().
- Nel caso che i due dataframe non avessero nessuna colonna in comune, il risultato del merge sarà il prodotto cartesiano tra i due dataframe.
# Crea il primo dataframe.
nome <- c("Adele", "Berto", "Carla", "Dario")
età <- c(20, 30, 40, 50)
df1 <- data.frame(nome, età)
# Crea il secondo dataframe.
nome <- c("Adele", "Berto", "Carla", "Dario")
peso <- c(20, 30, 40, 50)
df2 <- data.frame(nome, peso)
# Visualizza il merge tra i due dataframe.
print(merge(df1, df2))
nome età peso
1 Adele 20 20
2 Berto 30 30
3 Carla 40 40
4 Dario 50 50