Pagina personale di:
Carlo Vecchio
appunti di C#, R, SQL Server, ASP.NET, algoritmi, numeri
Vai ai contenuti

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




© 2020 Carlo Vecchio
Torna ai contenuti